Patch "btrfs: fix a bogus warning when converting only data or metadata" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
btrfs: fix a bogus warning when converting only data or metadata
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
btrfs-fix-a-bogus-warning-when-converting-only-data-or-metadata.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Mar 22 14:40:23 CET 2018
From: Adam Borowski <[email protected]>
Date: Tue, 7 Mar 2017 23:34:44 +0100
Subject: btrfs: fix a bogus warning when converting only data or metadata
From: Adam Borowski <[email protected]>
[ Upstream commit 14506127979a5a3d0c5d9b4cc76ce9d4ec23b717 ]
If your filesystem has, eg, data:raid0 metadata:raid1, and you run "btrfs balance -dconvert=raid1", the meta.target field will be uninitialized. That's otherwise ok, as it's unused except for this warning.
Thus, let's use the existing set of raid levels for the comparison.
As a side effect, non-convert balances will now nag about data>metadata.
--- fs/btrfs/volumes.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
fs/btrfs/volumes.c +9 -3
@@ -3765,6 +3765,7 @@ int btrfs_balance(struct btrfs_balance_c struct btrfs_ioctl_balance_args *bargs) {struct btrfs_fs_info *fs_info = bctl->fs_info; +u64 meta_target, data_target;u64 allowed;int mixed =0 ;int ret;
@@ -3861,11 +3862,16 @@ int btrfs_balance(struct btrfs_balance_c } }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)) { +/* if we're not converting, the target field is uninitialized */ + meta_target = (bctl->meta.flags &BTRFS_BALANCE_ARGS_CONVERT ) ? + bctl->meta.target : fs_info->avail_metadata_alloc_bits; + data_target = (bctl->data.flags &BTRFS_BALANCE_ARGS_CONVERT ) ? + bctl->data.target : fs_info->avail_data_alloc_bits; +if (btrfs_get_num_tolerated_disk_barrier_failures (meta_target) < +btrfs_get_num_tolerated_disk_barrier_failures (data_target)) {btrfs_warn (fs_info,"metadata profile 0x%llx has lower redundancy than data profile 0x%llx" , - bctl->meta.target, bctl->data.target); + meta_target, data_target); }if (bctl->sys.flags &BTRFS_BALANCE_ARGS_CONVERT ) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/btrfs-fix-a-bogus-warning-when-converting-only-data-or-metadata.patch