aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_ialloc.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-10-30 01:53:59 -0400
committerLachlan McIlroy <lachlan@sgi.com>2008-10-30 01:53:59 -0400
commit561f7d17390d00444e6cd0b02b7516c91528082e (patch)
tree59359b995320bf79a55c2f23305960b5ffe74d8f /fs/xfs/xfs_ialloc.c
parentf2277f06e626d694e61bb356524ff536ced24acf (diff)
[XFS] split up xfs_btree_init_cursor
xfs_btree_init_cursor contains close to little shared code for the different btrees and will get even more non-common code in the future. Split it up into one routine per btree type. Because xfs_btree_dup_cursor needs to call the init routine for a generic btree cursor add a new btree operation vector that contains a dup_cursor method that initializes a new cursor based on an existing one. The btree operations vector is based on an idea and code from Dave Chinner and will grow more entries later during this series. SGI-PV: 985583 SGI-Modid: xfs-linux-melb:xfs-kern:32176a 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>
Diffstat (limited to 'fs/xfs/xfs_ialloc.c')
-rw-r--r--fs/xfs/xfs_ialloc.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
index aad8c5da38a..11bb169561c 100644
--- a/fs/xfs/xfs_ialloc.c
+++ b/fs/xfs/xfs_ialloc.c
@@ -335,8 +335,7 @@ xfs_ialloc_ag_alloc(
335 /* 335 /*
336 * Insert records describing the new inode chunk into the btree. 336 * Insert records describing the new inode chunk into the btree.
337 */ 337 */
338 cur = xfs_btree_init_cursor(args.mp, tp, agbp, agno, 338 cur = xfs_inobt_init_cursor(args.mp, tp, agbp, agno);
339 XFS_BTNUM_INO, (xfs_inode_t *)0, 0);
340 for (thisino = newino; 339 for (thisino = newino;
341 thisino < newino + newlen; 340 thisino < newino + newlen;
342 thisino += XFS_INODES_PER_CHUNK) { 341 thisino += XFS_INODES_PER_CHUNK) {
@@ -676,8 +675,7 @@ nextag:
676 */ 675 */
677 agno = tagno; 676 agno = tagno;
678 *IO_agbp = NULL; 677 *IO_agbp = NULL;
679 cur = xfs_btree_init_cursor(mp, tp, agbp, be32_to_cpu(agi->agi_seqno), 678 cur = xfs_inobt_init_cursor(mp, tp, agbp, be32_to_cpu(agi->agi_seqno));
680 XFS_BTNUM_INO, (xfs_inode_t *)0, 0);
681 /* 679 /*
682 * If pagino is 0 (this is the root inode allocation) use newino. 680 * If pagino is 0 (this is the root inode allocation) use newino.
683 * This must work because we've just allocated some. 681 * This must work because we've just allocated some.
@@ -1022,8 +1020,7 @@ xfs_difree(
1022 /* 1020 /*
1023 * Initialize the cursor. 1021 * Initialize the cursor.
1024 */ 1022 */
1025 cur = xfs_btree_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO, 1023 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno);
1026 (xfs_inode_t *)0, 0);
1027#ifdef DEBUG 1024#ifdef DEBUG
1028 if (cur->bc_nlevels == 1) { 1025 if (cur->bc_nlevels == 1) {
1029 int freecount = 0; 1026 int freecount = 0;
@@ -1259,8 +1256,7 @@ xfs_dilocate(
1259#endif /* DEBUG */ 1256#endif /* DEBUG */
1260 return error; 1257 return error;
1261 } 1258 }
1262 cur = xfs_btree_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO, 1259 cur = xfs_inobt_init_cursor(mp, tp, agbp, agno);
1263 (xfs_inode_t *)0, 0);
1264 if ((error = xfs_inobt_lookup_le(cur, agino, 0, 0, &i))) { 1260 if ((error = xfs_inobt_lookup_le(cur, agino, 0, 0, &i))) {
1265#ifdef DEBUG 1261#ifdef DEBUG
1266 xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " 1262 xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: "