Skip to contentSkip to conversation

Btrfs: Check metadata redundancy on balance

PATCH In review sam tygier 2 participants 2 messages Jan 6, 2016 – Jan 7, 2016 Btrfs file system

lore
Share & tools
lore

sam tygier

author
#0 lore raw

PATCH v3 1/1 Btrfs: Check metadata redundancy on balance

From: Sam Tygier <[email protected]>
Date: Wed, 6 Jan 2016 08:46:12 +0000
Subject: [PATCH] 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

---
v3:
Use btrfs_warn()
Mention profiles in message
v2:
Use btrfs_get_num_tolerated_disk_barrier_failures()

---
 fs/btrfs/volumes.c | 8 ++++++++
 1 file changed, 8 insertions(+)
fs/btrfs/volumes.c +8 -0
index a23399e..be91458 100644
@@ -3756,6 +3756,14 @@ 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,
+			"Warning: metatdata profile %llu has lower redundancy "
+		        "than data profile %llu\n", 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),
Signature · 1 line
2.4.3
#1 lore raw
Quoted 25 lines · sam tygier

From: Sam Tygier <[email protected]>
Date: Wed, 6 Jan 2016 08:46:12 +0000
Subject: [PATCH] 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

---
v3:
Use btrfs_warn()
Mention profiles in message
v2:
Use btrfs_get_num_tolerated_disk_barrier_failures()

---
 fs/btrfs/volumes.c | 8 ++++++++
 1 file changed, 8 insertions(+)
fs/btrfs/volumes.c +0 -0
index a23399e..be91458 100644

fs/btrfs/volumes.c int btrfs_balance(struct btrfs_balance_control *bctl, · line 3763

Quoted 8 lines
fs/btrfs/volumes.c +5 -0
@@ -3756,6 +3756,14 @@ 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,
+			"Warning: metatdata profile %llu has lower redundancy "
+		        "than data profile %llu\n", bctl->meta.target,

Thanks. FYI, I made some minor adjustments to the message ("warning" is not necessary, numer format looks better in hexa, no ending \n).