diff options
-rw-r--r-- | fs/btrfs/ctree.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index e2673c29e733..ec904db041e6 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c @@ -5272,7 +5272,6 @@ int btrfs_next_old_leaf(struct btrfs_root *root, struct btrfs_path *path, struct btrfs_key key; u32 nritems; int ret; - int next_rw_lock = 0; nritems = btrfs_header_nritems(path->nodes[0]); if (nritems == 0) @@ -5282,7 +5281,6 @@ int btrfs_next_old_leaf(struct btrfs_root *root, struct btrfs_path *path, again: level = 1; next = NULL; - next_rw_lock = 0; btrfs_release_path(path); path->keep_locks = 1; @@ -5346,12 +5344,11 @@ again: } if (next) { - btrfs_tree_unlock_rw(next, next_rw_lock); + btrfs_tree_read_unlock(next); free_extent_buffer(next); } next = c; - next_rw_lock = path->locks[level]; ret = read_block_for_search(root, path, &next, level, slot, &key); if (ret == -EAGAIN) @@ -5382,7 +5379,6 @@ again: BTRFS_NESTING_RIGHT, path->recurse); } - next_rw_lock = BTRFS_READ_LOCK; } break; } @@ -5391,13 +5387,13 @@ again: level--; c = path->nodes[level]; if (path->locks[level]) - btrfs_tree_unlock_rw(c, path->locks[level]); + btrfs_tree_read_unlock(c); free_extent_buffer(c); path->nodes[level] = next; path->slots[level] = 0; if (!path->skip_locking) - path->locks[level] = next_rw_lock; + path->locks[level] = BTRFS_READ_LOCK; if (!level) break; @@ -5411,11 +5407,9 @@ again: goto done; } - if (!path->skip_locking) { + if (!path->skip_locking) __btrfs_tree_read_lock(next, BTRFS_NESTING_RIGHT, path->recurse); - next_rw_lock = BTRFS_READ_LOCK; - } } ret = 0; done: |