diff options
Diffstat (limited to 'fs/btrfs/relocation.c')
| -rw-r--r-- | fs/btrfs/relocation.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index a9728680eca8..ab7ab5318745 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c | |||
| @@ -3281,8 +3281,10 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc) | |||
| 3281 | return -ENOMEM; | 3281 | return -ENOMEM; |
| 3282 | 3282 | ||
| 3283 | path = btrfs_alloc_path(); | 3283 | path = btrfs_alloc_path(); |
| 3284 | if (!path) | 3284 | if (!path) { |
| 3285 | kfree(cluster); | ||
| 3285 | return -ENOMEM; | 3286 | return -ENOMEM; |
| 3287 | } | ||
| 3286 | 3288 | ||
| 3287 | rc->extents_found = 0; | 3289 | rc->extents_found = 0; |
| 3288 | rc->extents_skipped = 0; | 3290 | rc->extents_skipped = 0; |
| @@ -3762,7 +3764,8 @@ out: | |||
| 3762 | BTRFS_DATA_RELOC_TREE_OBJECTID); | 3764 | BTRFS_DATA_RELOC_TREE_OBJECTID); |
| 3763 | if (IS_ERR(fs_root)) | 3765 | if (IS_ERR(fs_root)) |
| 3764 | err = PTR_ERR(fs_root); | 3766 | err = PTR_ERR(fs_root); |
| 3765 | btrfs_orphan_cleanup(fs_root); | 3767 | else |
| 3768 | btrfs_orphan_cleanup(fs_root); | ||
| 3766 | } | 3769 | } |
| 3767 | return err; | 3770 | return err; |
| 3768 | } | 3771 | } |
