diff options
author | David Sterba <dsterba@suse.com> | 2019-05-17 12:43:22 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2019-07-01 14:34:56 +0300 |
commit | fc9a2ac77c05ba060dcfb084a752aa3ee37f9e2a (patch) | |
tree | 7da70900a9dff927d21178423b6077aefc5bb241 | |
parent | 9fa02ac75ba14683b341ec7430202cccfc8c3fab (diff) | |
download | linux-fc9a2ac77c05ba060dcfb084a752aa3ee37f9e2a.tar.xz |
btrfs: use raid_attr in btrfs_chunk_max_errors
The number of tolerated failures is stored in the raid_attr table, use
it.
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/volumes.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index a3fa741c8534..995a15a816f2 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -5325,19 +5325,9 @@ static noinline int init_first_rw_device(struct btrfs_trans_handle *trans) static inline int btrfs_chunk_max_errors(struct map_lookup *map) { - int max_errors; - - if (map->type & (BTRFS_BLOCK_GROUP_RAID1 | - BTRFS_BLOCK_GROUP_RAID10 | - BTRFS_BLOCK_GROUP_RAID5)) { - max_errors = 1; - } else if (map->type & BTRFS_BLOCK_GROUP_RAID6) { - max_errors = 2; - } else { - max_errors = 0; - } + const int index = btrfs_bg_flags_to_raid_index(map->type); - return max_errors; + return btrfs_raid_array[index].tolerated_failures; } int btrfs_chunk_readonly(struct btrfs_fs_info *fs_info, u64 chunk_offset) |