When a rewound buffer is created it already has a ref count of 1 and
the dummy flag set. Then another ref is taken bumping the count to 2.
Finally when this buffer is released from btrfs_release_path the extra
reference is decremented by the special handling code in
free_extent_buffer. However, this special code is in fact redundant
sinca ref count of 1 is still correct since the buffer is only
accessed via btrfs_path struct. This paves the way forward of removing
the special handling in free_extent_buffer.

Signed-off-by: Nikolay Borisov <[email protected]>
---
 fs/btrfs/ctree.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 4dc5d4becd49..c3d298580bc9 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1310,7 +1310,6 @@ tree_mod_log_rewind(struct btrfs_fs_info *fs_info, struct 
btrfs_path *path,
        btrfs_tree_read_unlock_blocking(eb);
        free_extent_buffer(eb);
 
-       extent_buffer_get(eb_rewin);
        btrfs_tree_read_lock(eb_rewin);
        __tree_mod_log_rewind(fs_info, eb_rewin, time_seq, tm);
        WARN_ON(btrfs_header_nritems(eb_rewin) >
-- 
2.7.4

Reply via email to