btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures
1: Use ARRAY_SIZE(types) to replace a static-value variant: int num_types = 4; 2: Use 'continue' on condition to reduce one level tab if (!XXX) { code; ... } -> if (XXX) continue; code; ... 3: Put setting 'num_tolerated_disk_barrier_failures = 2' to (num_tolerated_disk_barrier_failures > 2) condition to make make logic neat. if (num_tolerated_disk_barrier_failures > 0 && XXX) num_tolerated_disk_barrier_failures = 0; else if (num_tolerated_disk_barrier_failures > 1) { if (XXX) num_tolerated_disk_barrier_failures = 1; else if (XXX) num_tolerated_disk_barrier_failures = 2; -> if (num_tolerated_disk_barrier_failures > 0 && XXX) num_tolerated_disk_barrier_failures = 0; if (num_tolerated_disk_barrier_failures > 1 && XXX) num_tolerated_disk_barrier_failures = ; if (num_tolerated_disk_barrier_failures > 2 && XXX) num_tolerated_disk_barrier_failures = 2; 4: Remove comment of: num_mirrors - 1: if RAID1 or RAID10 is configured and more than 2 mirrors are used. which is not fit with code. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
parent
8c204c9657
commit
2c4580454f
@ -3449,13 +3449,12 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
|
||||
BTRFS_BLOCK_GROUP_SYSTEM,
|
||||
BTRFS_BLOCK_GROUP_METADATA,
|
||||
BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA};
|
||||
int num_types = 4;
|
||||
int i;
|
||||
int c;
|
||||
int num_tolerated_disk_barrier_failures =
|
||||
(int)fs_info->fs_devices->num_devices;
|
||||
|
||||
for (i = 0; i < num_types; i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(types); i++) {
|
||||
struct btrfs_space_info *tmp;
|
||||
|
||||
sinfo = NULL;
|
||||
@ -3473,44 +3472,38 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
|
||||
|
||||
down_read(&sinfo->groups_sem);
|
||||
for (c = 0; c < BTRFS_NR_RAID_TYPES; c++) {
|
||||
if (!list_empty(&sinfo->block_groups[c])) {
|
||||
u64 flags;
|
||||
u64 flags;
|
||||
|
||||
btrfs_get_block_group_info(
|
||||
&sinfo->block_groups[c], &space);
|
||||
if (space.total_bytes == 0 ||
|
||||
space.used_bytes == 0)
|
||||
continue;
|
||||
flags = space.flags;
|
||||
/*
|
||||
* return
|
||||
* 0: if dup, single or RAID0 is configured for
|
||||
* any of metadata, system or data, else
|
||||
* 1: if RAID5 is configured, or if RAID1 or
|
||||
* RAID10 is configured and only two mirrors
|
||||
* are used, else
|
||||
* 2: if RAID6 is configured, else
|
||||
* num_mirrors - 1: if RAID1 or RAID10 is
|
||||
* configured and more than
|
||||
* 2 mirrors are used.
|
||||
*/
|
||||
if (num_tolerated_disk_barrier_failures > 0 &&
|
||||
((flags & (BTRFS_BLOCK_GROUP_DUP |
|
||||
BTRFS_BLOCK_GROUP_RAID0)) ||
|
||||
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK)
|
||||
== 0)))
|
||||
num_tolerated_disk_barrier_failures = 0;
|
||||
else if (num_tolerated_disk_barrier_failures > 1) {
|
||||
if (flags & (BTRFS_BLOCK_GROUP_RAID1 |
|
||||
BTRFS_BLOCK_GROUP_RAID5 |
|
||||
BTRFS_BLOCK_GROUP_RAID10)) {
|
||||
num_tolerated_disk_barrier_failures = 1;
|
||||
} else if (flags &
|
||||
BTRFS_BLOCK_GROUP_RAID6) {
|
||||
num_tolerated_disk_barrier_failures = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (list_empty(&sinfo->block_groups[c]))
|
||||
continue;
|
||||
|
||||
btrfs_get_block_group_info(&sinfo->block_groups[c],
|
||||
&space);
|
||||
if (space.total_bytes == 0 || space.used_bytes == 0)
|
||||
continue;
|
||||
flags = space.flags;
|
||||
/*
|
||||
* return
|
||||
* 0: if dup, single or RAID0 is configured for
|
||||
* any of metadata, system or data, else
|
||||
* 1: if RAID5 is configured, or if RAID1 or
|
||||
* RAID10 is configured and only two mirrors
|
||||
* are used, else
|
||||
* 2: if RAID6 is configured
|
||||
*/
|
||||
if (num_tolerated_disk_barrier_failures > 0 &&
|
||||
((flags & (BTRFS_BLOCK_GROUP_DUP |
|
||||
BTRFS_BLOCK_GROUP_RAID0)) ||
|
||||
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0)))
|
||||
num_tolerated_disk_barrier_failures = 0;
|
||||
else if (num_tolerated_disk_barrier_failures > 1 &&
|
||||
(flags & (BTRFS_BLOCK_GROUP_RAID1 |
|
||||
BTRFS_BLOCK_GROUP_RAID5 |
|
||||
BTRFS_BLOCK_GROUP_RAID10)))
|
||||
num_tolerated_disk_barrier_failures = 1;
|
||||
else if (num_tolerated_disk_barrier_failures > 2 &&
|
||||
(flags & BTRFS_BLOCK_GROUP_RAID6))
|
||||
num_tolerated_disk_barrier_failures = 2;
|
||||
}
|
||||
up_read(&sinfo->groups_sem);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user