|
@@ -7523,6 +7523,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
|
|
|
while (1) {
|
|
|
btrfs_tree_lock(path->nodes[level]);
|
|
|
btrfs_set_lock_blocking(path->nodes[level]);
|
|
|
+ path->locks[level] = BTRFS_WRITE_LOCK_BLOCKING;
|
|
|
|
|
|
ret = btrfs_lookup_extent_info(trans, root,
|
|
|
path->nodes[level]->start,
|
|
@@ -7538,6 +7539,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
|
|
|
break;
|
|
|
|
|
|
btrfs_tree_unlock(path->nodes[level]);
|
|
|
+ path->locks[level] = 0;
|
|
|
WARN_ON(wc->refs[level] != 1);
|
|
|
level--;
|
|
|
}
|