diff options
Diffstat (limited to 'fs/btrfs/relocation.c')
-rw-r--r-- | fs/btrfs/relocation.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 08ef890deca6..1cfd35cfac76 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c | |||
@@ -2418,7 +2418,7 @@ again: | |||
2418 | } | 2418 | } |
2419 | out: | 2419 | out: |
2420 | if (ret) { | 2420 | if (ret) { |
2421 | btrfs_std_error(root->fs_info, ret, NULL); | 2421 | btrfs_handle_fs_error(root->fs_info, ret, NULL); |
2422 | if (!list_empty(&reloc_roots)) | 2422 | if (!list_empty(&reloc_roots)) |
2423 | free_reloc_roots(&reloc_roots); | 2423 | free_reloc_roots(&reloc_roots); |
2424 | 2424 | ||
@@ -4254,12 +4254,11 @@ int btrfs_relocate_block_group(struct btrfs_root *extent_root, u64 group_start) | |||
4254 | btrfs_info(extent_root->fs_info, "relocating block group %llu flags %llu", | 4254 | btrfs_info(extent_root->fs_info, "relocating block group %llu flags %llu", |
4255 | rc->block_group->key.objectid, rc->block_group->flags); | 4255 | rc->block_group->key.objectid, rc->block_group->flags); |
4256 | 4256 | ||
4257 | ret = btrfs_start_delalloc_roots(fs_info, 0, -1); | 4257 | btrfs_wait_block_group_reservations(rc->block_group); |
4258 | if (ret < 0) { | 4258 | btrfs_wait_nocow_writers(rc->block_group); |
4259 | err = ret; | 4259 | btrfs_wait_ordered_roots(fs_info, -1, |
4260 | goto out; | 4260 | rc->block_group->key.objectid, |
4261 | } | 4261 | rc->block_group->key.offset); |
4262 | btrfs_wait_ordered_roots(fs_info, -1); | ||
4263 | 4262 | ||
4264 | while (1) { | 4263 | while (1) { |
4265 | mutex_lock(&fs_info->cleaner_mutex); | 4264 | mutex_lock(&fs_info->cleaner_mutex); |