The patch "reduce repetitive calculation of max number of child nodes"
gathered up the calculation of maximum number of child nodes into
nilfs_btree_nchildren_per_block() function.  This makes the function
get resultant value from a private variable in bmap object instead of
calculating it for each call.

Signed-off-by: Ryusuke Konishi <[email protected]>
---
 fs/nilfs2/bmap.h  |    2 ++
 fs/nilfs2/btree.c |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/fs/nilfs2/bmap.h b/fs/nilfs2/bmap.h
index fae83cf..a20569b 100644
--- a/fs/nilfs2/bmap.h
+++ b/fs/nilfs2/bmap.h
@@ -105,6 +105,7 @@ static inline int nilfs_bmap_is_new_ptr(unsigned long ptr)
  * @b_last_allocated_ptr: last allocated ptr for data block
  * @b_ptr_type: pointer type
  * @b_state: state
+ * @b_nchildren_per_block: maximum number of child nodes for non-root nodes
  */
 struct nilfs_bmap {
        union {
@@ -118,6 +119,7 @@ struct nilfs_bmap {
        __u64 b_last_allocated_ptr;
        int b_ptr_type;
        int b_state;
+       __u16 b_nchildren_per_block;
 };
 
 /* pointer type */
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
index fef84a6..68d2502 100644
--- a/fs/nilfs2/btree.c
+++ b/fs/nilfs2/btree.c
@@ -153,7 +153,7 @@ static inline int nilfs_btree_node_size(const struct 
nilfs_bmap *btree)
 
 static int nilfs_btree_nchildren_per_block(const struct nilfs_bmap *btree)
 {
-       return NILFS_BTREE_NODE_NCHILDREN_MAX(nilfs_btree_node_size(btree));
+       return btree->b_nchildren_per_block;
 }
 
 static inline __le64 *
@@ -2217,10 +2217,14 @@ static const struct nilfs_bmap_operations 
nilfs_btree_ops_gc = {
 int nilfs_btree_init(struct nilfs_bmap *bmap)
 {
        bmap->b_ops = &nilfs_btree_ops;
+       bmap->b_nchildren_per_block =
+               NILFS_BTREE_NODE_NCHILDREN_MAX(nilfs_btree_node_size(bmap));
        return 0;
 }
 
 void nilfs_btree_init_gc(struct nilfs_bmap *bmap)
 {
        bmap->b_ops = &nilfs_btree_ops_gc;
+       bmap->b_nchildren_per_block =
+               NILFS_BTREE_NODE_NCHILDREN_MAX(nilfs_btree_node_size(bmap));
 }
-- 
1.6.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to