Btrfs: Check metadata redundancy on balance
authorSam Tygier <samtygier@yahoo.co.uk>
Wed, 6 Jan 2016 08:46:12 +0000 (08:46 +0000)
committerDavid Sterba <dsterba@suse.com>
Thu, 7 Jan 2016 14:20:56 +0000 (15:20 +0100)
When converting a filesystem via balance check that metadata mode
is at least as redundant as the data mode. For example give warning
when:
-dconvert=raid1 -mconvert=single

Signed-off-by: Sam Tygier <samtygier@yahoo.co.uk>
[ minor message reformatting ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/volumes.c

index e95d249..574a717 100644 (file)
@@ -3748,6 +3748,13 @@ int btrfs_balance(struct btrfs_balance_control *bctl,
                }
        } while (read_seqretry(&fs_info->profiles_lock, seq));
 
+       if (btrfs_get_num_tolerated_disk_barrier_failures(bctl->meta.target) <
+               btrfs_get_num_tolerated_disk_barrier_failures(bctl->data.target)) {
+               btrfs_warn(fs_info,
+       "metatdata profile 0x%llx has lower redundancy than data profile 0x%llx",
+                       bctl->meta.target, bctl->data.target);
+       }
+
        if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) {
                fs_info->num_tolerated_disk_barrier_failures = min(
                        btrfs_calc_num_tolerated_disk_barrier_failures(fs_info),