This will help a lot in level by level iteration.

Signed-off-by: Qu Wenruo <[email protected]>
---
 ctree.h | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/ctree.h b/ctree.h
index c52d3de..0dfe733 100644
--- a/ctree.h
+++ b/ctree.h
@@ -2340,13 +2340,18 @@ static inline int btrfs_next_tree_block(struct 
btrfs_root *root,
        return btrfs_next_leaf(root, path);
 }
 
+static inline int btrfs_next_slot(struct btrfs_root *root,
+                                 struct btrfs_path *p, int level)
+{
+       ++p->slots[level];
+       if (p->slots[level] >= btrfs_header_nritems(p->nodes[level]))
+               return btrfs_next_tree_block(root, p);
+       return 0;
+}
 static inline int btrfs_next_item(struct btrfs_root *root,
                                  struct btrfs_path *p)
 {
-       ++p->slots[0];
-       if (p->slots[0] >= btrfs_header_nritems(p->nodes[0]))
-               return btrfs_next_leaf(root, p);
-       return 0;
+       return btrfs_next_slot(root, p, 0);
 }
 
 int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path);
-- 
2.2.2

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

Reply via email to