summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Tygier <samtygier@yahoo.co.uk>2016-01-06 08:46:12 +0000
committerDavid Sterba <dsterba@suse.com>2016-01-07 15:20:56 +0100
commitee592d07716139ef7c3ea8049936cbc3aafbc533 (patch)
tree5189f3283edad9305b999ce6806871a0f6d5fba6
parentca8a51b3a979d57b082b14eda38602b7f52d81d1 (diff)
downloadlinux-ee592d07716139ef7c3ea8049936cbc3aafbc533.tar.gz
linux-ee592d07716139ef7c3ea8049936cbc3aafbc533.tar.bz2
linux-ee592d07716139ef7c3ea8049936cbc3aafbc533.zip
Btrfs: Check metadata redundancy on balance
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>
-rw-r--r--fs/btrfs/volumes.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index e95d24967fa0..574a717fcb6e 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -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),