/* Mark the buffer as not needing to be unlocked when the buf item's IOP_UNLOCK() routine is called. The buffer must already be locked and associated with the given transaction.  */
void xfs_trans_bhold(xfs_trans_t *tp, xfs_buf_t *bp)
/* Mark the buffer as not needing to be unlocked when the buf item's IOP_UNLOCK() routine is called. The buffer must already be locked and associated with the given transaction.  */
void xfs_trans_bhold(xfs_trans_t *tp, xfs_buf_t *bp)
{
	xfs_buf_log_item_t	*bip;
	ASSERT(XFS_BUF_ISBUSY(bp));
	ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp);
	ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
	bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
	ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
	ASSERT(!(bip->bli_format.blf_flags & XFS_BLI_CANCEL));
	ASSERT(atomic_read(&bip->bli_refcount) > 0);
	bip->bli_flags |= XFS_BLI_HOLD;
	trace_xfs_trans_bhold(bip);
}