[XFS] implement generic xfs_btree_increment

From: Dave Chinner <dgc@sgi.com>

Because this is the first major generic btree routine this patch includes
some infrastrucure, first a few routines to deal with a btree block that
can be either in short or long form, second xfs_btree_read_buf_block,
which is the new central routine to read a btree block given a cursor, and
third the new xfs_btree_ptr_addr routine to calculate the address for a
given btree pointer record.

[hch: split out from bigger patch and minor adaptions]

SGI-PV: 985583

SGI-Modid: xfs-linux-melb:xfs-kern:32190a

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:
Christoph Hellwig
2008-10-30 16:55:45 +11:00
committed by Lachlan McIlroy
parent 65f1eaeac0
commit 637aa50f46
12 changed files with 262 additions and 305 deletions

View File

@@ -471,7 +471,7 @@ xfs_bulkstat(
* In any case, increment to the next record.
*/
if (!error)
error = xfs_inobt_increment(cur, 0, &tmp);
error = xfs_btree_increment(cur, 0, &tmp);
} else {
/*
* Start of ag. Lookup the first inode chunk.
@@ -538,7 +538,7 @@ xfs_bulkstat(
* Set agino to after this chunk and bump the cursor.
*/
agino = gino + XFS_INODES_PER_CHUNK;
error = xfs_inobt_increment(cur, 0, &tmp);
error = xfs_btree_increment(cur, 0, &tmp);
cond_resched();
}
/*
@@ -885,7 +885,7 @@ xfs_inumbers(
bufidx = 0;
}
if (left) {
error = xfs_inobt_increment(cur, 0, &tmp);
error = xfs_btree_increment(cur, 0, &tmp);
if (error) {
xfs_btree_del_cursor(cur, XFS_BTREE_ERROR);
cur = NULL;