/* Get a buffer for the block, return it read in. Long-form addressing.  */
int xfs_btree_read_bufl(xfs_mount_t *mp, xfs_trans_t *tp, xfs_fsblock_t fsbno, uint lock, xfs_buf_t **bpp, int refval)
/* Get a buffer for the block, return it read in. Long-form addressing.  */
int xfs_btree_read_bufl(xfs_mount_t *mp, xfs_trans_t *tp, xfs_fsblock_t fsbno, uint lock, xfs_buf_t **bpp, int refval)
{
	xfs_buf_t	*bp;
	xfs_daddr_t		d;
	int		error;
	ASSERT(fsbno != NULLFSBLOCK);
	d = XFS_FSB_TO_DADDR(mp, fsbno);
	if ((error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, d,
			mp->m_bsize, lock, &bp))) {
		return error;
	}
	ASSERT(!bp || !XFS_BUF_GETERROR(bp));
	if (bp != NULL) {
		XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval);
	}
	*bpp = bp;
	return 0;
}