| From 2d2d9a3a0e9c8d23f96bfbe765c42b02a3587259 Mon Sep 17 00:00:00 2001 |
| From: David Sterba <dsterba@suse.com> |
| Date: Fri, 17 May 2019 11:43:13 +0200 |
| Subject: btrfs: fix minimum number of chunk errors for DUP |
| |
| [ Upstream commit 0ee5f8ae082e1f675a2fb6db601c31ac9958a134 ] |
| |
| The list of profiles in btrfs_chunk_max_errors lists DUP as a profile |
| DUP able to tolerate 1 device missing. Though this profile is special |
| with 2 copies, it still needs the device, unlike the others. |
| |
| Looking at the history of changes, thre's no clear reason why DUP is |
| there, functions were refactored and blocks of code merged to one |
| helper. |
| |
| d20983b40e828 Btrfs: fix writing data into the seed filesystem |
| - factor code to a helper |
| |
| de11cc12df173 Btrfs: don't pre-allocate btrfs bio |
| - unrelated change, DUP still in the list with max errors 1 |
| |
| a236aed14ccb0 Btrfs: Deal with failed writes in mirrored configurations |
| - introduced the max errors, leaves DUP and RAID1 in the same group |
| |
| Reviewed-by: Qu Wenruo <wqu@suse.com> |
| Signed-off-by: David Sterba <dsterba@suse.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/btrfs/volumes.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c |
| index 94b61afe996c8..70aa22a8a9cce 100644 |
| --- a/fs/btrfs/volumes.c |
| +++ b/fs/btrfs/volumes.c |
| @@ -5072,8 +5072,7 @@ static inline int btrfs_chunk_max_errors(struct map_lookup *map) |
| |
| if (map->type & (BTRFS_BLOCK_GROUP_RAID1 | |
| BTRFS_BLOCK_GROUP_RAID10 | |
| - BTRFS_BLOCK_GROUP_RAID5 | |
| - BTRFS_BLOCK_GROUP_DUP)) { |
| + BTRFS_BLOCK_GROUP_RAID5)) { |
| max_errors = 1; |
| } else if (map->type & BTRFS_BLOCK_GROUP_RAID6) { |
| max_errors = 2; |
| -- |
| 2.20.1 |
| |