diff options
Diffstat (limited to 'fs/xfs/xfs_alloc.c')
| -rw-r--r-- | fs/xfs/xfs_alloc.c | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index e9c70249d2c..54fa69e2776 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -155,6 +155,27 @@ xfs_alloc_update(  }  /* + * Get the data from the pointed-to record. + */ +STATIC int				/* error */ +xfs_alloc_get_rec( +	struct xfs_btree_cur	*cur,	/* btree cursor */ +	xfs_agblock_t		*bno,	/* output: starting block of extent */ +	xfs_extlen_t		*len,	/* output: length of extent */ +	int			*stat)	/* output: success/failure */ +{ +	union xfs_btree_rec	*rec; +	int			error; + +	error = xfs_btree_get_rec(cur, &rec, stat); +	if (!error && *stat == 1) { +		*bno = be32_to_cpu(rec->alloc.ar_startblock); +		*len = be32_to_cpu(rec->alloc.ar_blockcount); +	} +	return error; +} + +/*   * Compute aligned version of the found extent.   * Takes alignment and min length into account.   */  |