|
@@ -731,6 +731,16 @@ xfs_ialloc_get_rec(
|
|
return 0;
|
|
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.
|
|
* Allocate an inode using the inobt-only algorithm.
|
|
*/
|
|
*/
|
|
@@ -961,7 +971,7 @@ newino:
|
|
}
|
|
}
|
|
|
|
|
|
alloc_inode:
|
|
alloc_inode:
|
|
- offset = xfs_lowbit64(rec.ir_free);
|
|
|
|
|
|
+ offset = xfs_inobt_first_free_inode(&rec);
|
|
ASSERT(offset >= 0);
|
|
ASSERT(offset >= 0);
|
|
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
|
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
|
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|
|
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|
|
@@ -1210,7 +1220,7 @@ xfs_dialloc_ag(
|
|
if (error)
|
|
if (error)
|
|
goto error_cur;
|
|
goto error_cur;
|
|
|
|
|
|
- offset = xfs_lowbit64(rec.ir_free);
|
|
|
|
|
|
+ offset = xfs_inobt_first_free_inode(&rec);
|
|
ASSERT(offset >= 0);
|
|
ASSERT(offset >= 0);
|
|
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
|
ASSERT(offset < XFS_INODES_PER_CHUNK);
|
|
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|
|
ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
|