/* Similar to xfs_trans_inode_buf(), this marks the buffer as a cluster of dquots. However, unlike in inode buffer recovery, dquot buffers get recovered in their entirety. (Hence, no XFS_BLI_DQUOT_ALLOC_BUF flag). The only thing that makes dquot buffers different from regular buffers is that we must not replay dquot bufs when recovering if a  */
void xfs_trans_dquot_buf(xfs_trans_t *tp, xfs_buf_t *bp, uint type)
/* Similar to xfs_trans_inode_buf(), this marks the buffer as a cluster of dquots. However, unlike in inode buffer recovery, dquot buffers get recovered in their entirety. (Hence, no XFS_BLI_DQUOT_ALLOC_BUF flag). The only thing that makes dquot buffers different from regular buffers is that we must not replay dquot bufs when recovering if a  */
void xfs_trans_dquot_buf(xfs_trans_t *tp, xfs_buf_t *bp, uint type)
{
	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);
	ASSERT(type == XFS_BLI_UDQUOT_BUF ||
	       type == XFS_BLI_PDQUOT_BUF ||
	       type == XFS_BLI_GDQUOT_BUF);
	bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
	ASSERT(atomic_read(&bip->bli_refcount) > 0);
	bip->bli_format.blf_flags |= type;
}