diff options
author | Dan Williams <dan.j.williams@intel.com> | 2022-09-24 18:14:12 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2022-09-24 18:14:12 -0700 |
commit | b3bbcc5d1da1b654091dad15980b3d58fdae0fc6 (patch) | |
tree | 77795fbece4fc61a659ed97c70d798ca81f35bb8 /fs/btrfs/relocation.c | |
parent | 17d9c15c9b9e7fb285f7ac5367dfb5f00ff575e3 (diff) | |
parent | 67feaba413ec68daf4124e9870878899b4ed9a0e (diff) |
Merge branch 'for-6.0/dax' into libnvdimm-fixes
Pick up another "Soft Reservation" fix for v6.0-final on top of some
straggling nvdimm fixes that missed v5.19.
Diffstat (limited to 'fs/btrfs/relocation.c')
-rw-r--r-- | fs/btrfs/relocation.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index a6dc827e75af..45c02aba2492 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -1326,7 +1326,9 @@ again: btrfs_release_path(path); path->lowest_level = level; + set_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); ret = btrfs_search_slot(trans, src, &key, path, 0, 1); + clear_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); path->lowest_level = 0; if (ret) { if (ret > 0) @@ -3573,7 +3575,12 @@ int prepare_to_relocate(struct reloc_control *rc) */ return PTR_ERR(trans); } - return btrfs_commit_transaction(trans); + + ret = btrfs_commit_transaction(trans); + if (ret) + unset_reloc_control(rc); + + return ret; } static noinline_for_stack int relocate_block_group(struct reloc_control *rc) |