mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
[XFS] implement generic xfs_btree_get_rec
Not really much reason to make it generic given that it's so small, but this is the last non-method in xfs_alloc_btree.c and xfs_ialloc_btree.c, so it makes the whole btree implementation more structured. SGI-PV: 985583 SGI-Modid: xfs-linux-melb:xfs-kern:32206a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Bill O'Donnell <billodo@sgi.com> Signed-off-by: David Chinner <david@fromorbit.com>
This commit is contained in:
parent
91cca5df9b
commit
8cc938fe42
9 changed files with 91 additions and 101 deletions
|
@ -191,6 +191,29 @@ xfs_inobt_update(
|
|||
return xfs_btree_update(cur, &rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the data from the pointed-to record.
|
||||
*/
|
||||
int /* error */
|
||||
xfs_inobt_get_rec(
|
||||
struct xfs_btree_cur *cur, /* btree cursor */
|
||||
xfs_agino_t *ino, /* output: starting inode of chunk */
|
||||
__int32_t *fcnt, /* output: number of free inodes */
|
||||
xfs_inofree_t *free, /* output: free inode mask */
|
||||
int *stat) /* output: success/failure */
|
||||
{
|
||||
union xfs_btree_rec *rec;
|
||||
int error;
|
||||
|
||||
error = xfs_btree_get_rec(cur, &rec, stat);
|
||||
if (!error && *stat == 1) {
|
||||
*ino = be32_to_cpu(rec->inobt.ir_startino);
|
||||
*fcnt = be32_to_cpu(rec->inobt.ir_freecount);
|
||||
*free = be64_to_cpu(rec->inobt.ir_free);
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate new inodes in the allocation group specified by agbp.
|
||||
* Return 0 for success, else error code.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue