forked from luck/tmp_suning_uos_patched
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_SYSTEM,
|
||||||
BTRFS_BLOCK_GROUP_METADATA,
|
BTRFS_BLOCK_GROUP_METADATA,
|
||||||
BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA};
|
BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA};
|
||||||
int num_types = 4;
|
|
||||||
int i;
|
int i;
|
||||||
int c;
|
int c;
|
||||||
int num_tolerated_disk_barrier_failures =
|
int num_tolerated_disk_barrier_failures =
|
||||||
(int)fs_info->fs_devices->num_devices;
|
(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;
|
struct btrfs_space_info *tmp;
|
||||||
|
|
||||||
sinfo = NULL;
|
sinfo = NULL;
|
||||||
|
@ -3473,44 +3472,38 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
|
||||||
|
|
||||||
down_read(&sinfo->groups_sem);
|
down_read(&sinfo->groups_sem);
|
||||||
for (c = 0; c < BTRFS_NR_RAID_TYPES; c++) {
|
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(
|
if (list_empty(&sinfo->block_groups[c]))
|
||||||
&sinfo->block_groups[c], &space);
|
continue;
|
||||||
if (space.total_bytes == 0 ||
|
|
||||||
space.used_bytes == 0)
|
btrfs_get_block_group_info(&sinfo->block_groups[c],
|
||||||
continue;
|
&space);
|
||||||
flags = space.flags;
|
if (space.total_bytes == 0 || space.used_bytes == 0)
|
||||||
/*
|
continue;
|
||||||
* return
|
flags = space.flags;
|
||||||
* 0: if dup, single or RAID0 is configured for
|
/*
|
||||||
* any of metadata, system or data, else
|
* return
|
||||||
* 1: if RAID5 is configured, or if RAID1 or
|
* 0: if dup, single or RAID0 is configured for
|
||||||
* RAID10 is configured and only two mirrors
|
* any of metadata, system or data, else
|
||||||
* are used, else
|
* 1: if RAID5 is configured, or if RAID1 or
|
||||||
* 2: if RAID6 is configured, else
|
* RAID10 is configured and only two mirrors
|
||||||
* num_mirrors - 1: if RAID1 or RAID10 is
|
* are used, else
|
||||||
* configured and more than
|
* 2: if RAID6 is configured
|
||||||
* 2 mirrors are used.
|
*/
|
||||||
*/
|
if (num_tolerated_disk_barrier_failures > 0 &&
|
||||||
if (num_tolerated_disk_barrier_failures > 0 &&
|
((flags & (BTRFS_BLOCK_GROUP_DUP |
|
||||||
((flags & (BTRFS_BLOCK_GROUP_DUP |
|
BTRFS_BLOCK_GROUP_RAID0)) ||
|
||||||
BTRFS_BLOCK_GROUP_RAID0)) ||
|
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0)))
|
||||||
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK)
|
num_tolerated_disk_barrier_failures = 0;
|
||||||
== 0)))
|
else if (num_tolerated_disk_barrier_failures > 1 &&
|
||||||
num_tolerated_disk_barrier_failures = 0;
|
(flags & (BTRFS_BLOCK_GROUP_RAID1 |
|
||||||
else if (num_tolerated_disk_barrier_failures > 1) {
|
BTRFS_BLOCK_GROUP_RAID5 |
|
||||||
if (flags & (BTRFS_BLOCK_GROUP_RAID1 |
|
BTRFS_BLOCK_GROUP_RAID10)))
|
||||||
BTRFS_BLOCK_GROUP_RAID5 |
|
num_tolerated_disk_barrier_failures = 1;
|
||||||
BTRFS_BLOCK_GROUP_RAID10)) {
|
else if (num_tolerated_disk_barrier_failures > 2 &&
|
||||||
num_tolerated_disk_barrier_failures = 1;
|
(flags & BTRFS_BLOCK_GROUP_RAID6))
|
||||||
} else if (flags &
|
num_tolerated_disk_barrier_failures = 2;
|
||||||
BTRFS_BLOCK_GROUP_RAID6) {
|
|
||||||
num_tolerated_disk_barrier_failures = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
up_read(&sinfo->groups_sem);
|
up_read(&sinfo->groups_sem);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user