diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-10-30 01:56:43 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@sgi.com> | 2008-10-30 01:56:43 -0400 |
commit | 9eaead51bed957af0070a277d945744a76df0c8b (patch) | |
tree | 7b0679186c06f366c7aed30873e3395bd414953e /fs/xfs/xfs_btree.h | |
parent | 278d0ca14e889c3932a05d1a68675252a12b3466 (diff) |
[XFS] implement generic xfs_btree_rshift
Make the btree right shift code generic. Based on a patch from David
Chinner with lots of changes to follow the original btree implementations
more closely. While this loses some of the generic helper routines for
inserting/moving/removing records it also solves some of the one off bugs
in the original code and makes it easier to verify.
SGI-PV: 985583
SGI-Modid: xfs-linux-melb:xfs-kern:32196a
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_btree.h')
-rw-r--r-- | fs/xfs/xfs_btree.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h index c3bfa5556c19..04311dbeff19 100644 --- a/fs/xfs/xfs_btree.h +++ b/fs/xfs/xfs_btree.h | |||
@@ -533,6 +533,7 @@ int xfs_btree_decrement(struct xfs_btree_cur *, int, int *); | |||
533 | int xfs_btree_lookup(struct xfs_btree_cur *, xfs_lookup_t, int *); | 533 | int xfs_btree_lookup(struct xfs_btree_cur *, xfs_lookup_t, int *); |
534 | int xfs_btree_updkey(struct xfs_btree_cur *, union xfs_btree_key *, int); | 534 | int xfs_btree_updkey(struct xfs_btree_cur *, union xfs_btree_key *, int); |
535 | int xfs_btree_update(struct xfs_btree_cur *, union xfs_btree_rec *); | 535 | int xfs_btree_update(struct xfs_btree_cur *, union xfs_btree_rec *); |
536 | int xfs_btree_rshift(struct xfs_btree_cur *, int, int *); | ||
536 | 537 | ||
537 | /* | 538 | /* |
538 | * Helpers. | 539 | * Helpers. |
@@ -542,6 +543,12 @@ static inline int xfs_btree_get_numrecs(struct xfs_btree_block *block) | |||
542 | return be16_to_cpu(block->bb_numrecs); | 543 | return be16_to_cpu(block->bb_numrecs); |
543 | } | 544 | } |
544 | 545 | ||
546 | static inline void xfs_btree_set_numrecs(struct xfs_btree_block *block, | ||
547 | __uint16_t numrecs) | ||
548 | { | ||
549 | block->bb_numrecs = cpu_to_be16(numrecs); | ||
550 | } | ||
551 | |||
545 | static inline int xfs_btree_get_level(struct xfs_btree_block *block) | 552 | static inline int xfs_btree_get_level(struct xfs_btree_block *block) |
546 | { | 553 | { |
547 | return be16_to_cpu(block->bb_level); | 554 | return be16_to_cpu(block->bb_level); |