aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/volumes.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/volumes.c')
-rw-r--r--fs/btrfs/volumes.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 76201d6f6ce4..6fc735869c18 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -3585,23 +3585,10 @@ int btrfs_balance(struct btrfs_balance_control *bctl,
3585 } while (read_seqretry(&fs_info->profiles_lock, seq)); 3585 } while (read_seqretry(&fs_info->profiles_lock, seq));
3586 3586
3587 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) { 3587 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) {
3588 int num_tolerated_disk_barrier_failures; 3588 fs_info->num_tolerated_disk_barrier_failures = min(
3589 u64 target = bctl->sys.target; 3589 btrfs_calc_num_tolerated_disk_barrier_failures(fs_info),
3590 3590 btrfs_get_num_tolerated_disk_barrier_failures(
3591 num_tolerated_disk_barrier_failures = 3591 bctl->sys.target));
3592 btrfs_calc_num_tolerated_disk_barrier_failures(fs_info);
3593 if (num_tolerated_disk_barrier_failures > 0 &&
3594 (target &
3595 (BTRFS_BLOCK_GROUP_DUP | BTRFS_BLOCK_GROUP_RAID0 |
3596 BTRFS_AVAIL_ALLOC_BIT_SINGLE)))
3597 num_tolerated_disk_barrier_failures = 0;
3598 else if (num_tolerated_disk_barrier_failures > 1 &&
3599 (target &
3600 (BTRFS_BLOCK_GROUP_RAID1 | BTRFS_BLOCK_GROUP_RAID10)))
3601 num_tolerated_disk_barrier_failures = 1;
3602
3603 fs_info->num_tolerated_disk_barrier_failures =
3604 num_tolerated_disk_barrier_failures;
3605 } 3592 }
3606 3593
3607 ret = insert_balance_item(fs_info->tree_root, bctl); 3594 ret = insert_balance_item(fs_info->tree_root, bctl);