/*static char *SCCSID = "@(#)unhldoft.c	6.1 90/11/18";*/
/*static char *SCCSID = "@(#)unhldoft.c	13.2 90/01/25";*/
#ifndef  _BTXT
#define  _BTXT _BTXT
#define  _THISFILE "UNHLDOFT.C"
#include _THISFILE.C
#undef   _BTXT
#endif

#ifndef HDRS
#define HDRS

#include <os2def.h>
#include "const.h"
#include "misc.h"
#include "chain.h"
#include "buf.h"
#include "dir.h"
#include "storage.h"
#include "fnode.h"
#include "volume.h"
#include "tables.h"
#include "pb_ifs.h"
#include "pbmacros.h"
#include "assert.h"
#include "lw.h"
#include "frame.h"
#include "superb.h"
#include "fsdata.h"
#include "log.h"

#endif

#include "pr_FSSUB.h"
#include "pr_MISC.h"
#include "pr_debug.h"

/*
 ***	UnHoldOFT - Release Hold on OFT
 *
 *	UnHoldOFT releases the hold on an OFT and if appropriate,
 *	wakes anyone waiting to lock it.
 *
 *	ENTRY	poft (edi) = OFT address
 *
 *	EXIT	none
 */

void
UnHoldOFT (poft)
POFT poft;
{
	/*
	 * this macro normally works for pbufs but should work here as well
	 * since the field name is the same
	 */
	DecrHoldsOFT (poft);

	ASSERT_OFT (poft);

	if (poft -> bFlag & OTF_PND) {
		ChkHoldOFT (poft);
	}
}
