mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-26 20:58:33 +00:00
xfs: create individual inode alloc. helper
Inode allocation from sparse inode records must filter the ir_free mask against ir_holemask. In preparation for this requirement, create a helper to allocate an individual inode from an inode record. Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
5ebe6afaf0
commit
d4cc540b08
@ -731,6 +731,16 @@ xfs_ialloc_get_rec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the offset of the first free inode in the record.
|
||||
*/
|
||||
STATIC int
|
||||
xfs_inobt_first_free_inode(
|
||||
struct xfs_inobt_rec_incore *rec)
|
||||
{
|
||||
return xfs_lowbit64(rec->ir_free);
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate an inode using the inobt-only algorithm.
|
||||
*/
|
||||
@ -961,7 +971,7 @@ newino:
|
||||
}
|
||||
|
||||
alloc_inode:
|
||||
offset = xfs_lowbit64(rec.ir_free);
|
||||
offset = xfs_inobt_first_free_inode(&rec);
|
||||
ASSERT(offset >= 0);
|
||||
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
||||
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|
||||
@ -1210,7 +1220,7 @@ xfs_dialloc_ag(
|
||||
if (error)
|
||||
goto error_cur;
|
||||
|
||||
offset = xfs_lowbit64(rec.ir_free);
|
||||
offset = xfs_inobt_first_free_inode(&rec);
|
||||
ASSERT(offset >= 0);
|
||||
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
||||
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|
||||
|
Loading…
x
Reference in New Issue
Block a user