summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorJan Schmidt2012-06-11 08:29:29 +0200
committerJan Schmidt2012-06-14 18:52:09 +0200
commit3d7806eca43e73a9721d2e09369200ed93036bd0 (patch)
tree339d940a7cb3522169f9e2a8b14edf8b8ae15880 /fs/btrfs/ctree.h
parentBtrfs: fix return value for __tree_mod_log_oldest_root (diff)
downloadkernel-qcow2-linux-3d7806eca43e73a9721d2e09369200ed93036bd0.tar.gz
kernel-qcow2-linux-3d7806eca43e73a9721d2e09369200ed93036bd0.tar.xz
kernel-qcow2-linux-3d7806eca43e73a9721d2e09369200ed93036bd0.zip
Btrfs: add btrfs_next_old_leaf
To make sense of the tree mod log, the backref walker not only needs btrfs_search_old_slot, but it also called btrfs_next_leaf, which in turn was calling btrfs_search_slot. This obviously didn't give the correct result. This commit adds btrfs_next_old_leaf, a drop-in replacement for btrfs_next_leaf with a time_seq parameter. If it is zero, it behaves exactly like btrfs_next_leaf. If it is non-zero, it will use btrfs_search_old_slot with this time_seq parameter. Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 0151ca1ac657..db15e9e7b91c 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2753,6 +2753,8 @@ static inline int btrfs_insert_empty_item(struct btrfs_trans_handle *trans,
}
int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path);
+int btrfs_next_old_leaf(struct btrfs_root *root, struct btrfs_path *path,
+ u64 time_seq);
static inline int btrfs_next_item(struct btrfs_root *root, struct btrfs_path *p)
{
++p->slots[0];