Skip to contentSkip to conversation

Patch "btrfs: allow balancing to dup with multi-device" has been added to the 4.5-stable tree

PATCH [email protected] 1 participant 1 message Jun 5, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

btrfs: allow balancing to dup with multi-device

to the 4.5-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-allow-balancing-to-dup-with-multi-device.patch
and it can be found in the queue-4.5 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 88be159c905a2b4f6d59afa352bef410afb6af02 Mon Sep 17 00:00:00 2001

From: "Austin S. Hemmelgarn" <[email protected]>
Date: Wed, 23 Mar 2016 14:22:59 -0400
Subject: btrfs: allow balancing to dup with multi-device

From: Austin S. Hemmelgarn <[email protected]>

commit 88be159c905a2b4f6d59afa352bef410afb6af02 upstream.

Currently, we don't allow the user to try and rebalance to a dup profile on a multi-device filesystem. In most cases, this is a perfectly sensible restriction as raid1 uses the same amount of space and provides better protection.

However, when reshaping a multi-device filesystem down to a single device filesystem, this requires the user to convert metadata and system chunks to single profile before deleting devices, and then convert again to dup, which leaves a period of time where metadata integrity is reduced.

This patch removes the single-device-only restriction from converting to dup profile to remove this potential data integrity reduction.

---
 fs/btrfs/volumes.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
fs/btrfs/volumes.c +2 -4
@@ -3699,10 +3699,8 @@ int btrfs_balance(struct btrfs_balance_c
 		num_devices--;
 	}
 	btrfs_dev_replace_unlock(&fs_info->dev_replace);
-	allowed = BTRFS_AVAIL_ALLOC_BIT_SINGLE;
-	if (num_devices == 1)
-		allowed |= BTRFS_BLOCK_GROUP_DUP;
-	else if (num_devices > 1)
+	allowed = BTRFS_AVAIL_ALLOC_BIT_SINGLE | BTRFS_BLOCK_GROUP_DUP;
+	if (num_devices > 1)
 		allowed |= (BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1);
 	if (num_devices > 2)
 		allowed |= BTRFS_BLOCK_GROUP_RAID5;

Patches currently in stable-queue which might be from [email protected] are

queue-4.5/btrfs-allow-balancing-to-dup-with-multi-device.patch