Skip to content

Commit 2c45804

Browse files
zhaoleiddmasoncl
authored andcommitted
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>
1 parent 8c204c9 commit 2c45804

File tree

1 file changed

+33
-40
lines changed

1 file changed

+33
-40
lines changed

fs/btrfs/disk-io.c

Lines changed: 33 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3449,13 +3449,12 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
34493449
BTRFS_BLOCK_GROUP_SYSTEM,
34503450
BTRFS_BLOCK_GROUP_METADATA,
34513451
BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA};
3452-
int num_types = 4;
34533452
int i;
34543453
int c;
34553454
int num_tolerated_disk_barrier_failures =
34563455
(int)fs_info->fs_devices->num_devices;
34573456

3458-
for (i = 0; i < num_types; i++) {
3457+
for (i = 0; i < ARRAY_SIZE(types); i++) {
34593458
struct btrfs_space_info *tmp;
34603459

34613460
sinfo = NULL;
@@ -3473,44 +3472,38 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
34733472

34743473
down_read(&sinfo->groups_sem);
34753474
for (c = 0; c < BTRFS_NR_RAID_TYPES; c++) {
3476-
if (!list_empty(&sinfo->block_groups[c])) {
3477-
u64 flags;
3478-
3479-
btrfs_get_block_group_info(
3480-
&sinfo->block_groups[c], &space);
3481-
if (space.total_bytes == 0 ||
3482-
space.used_bytes == 0)
3483-
continue;
3484-
flags = space.flags;
3485-
/*
3486-
* return
3487-
* 0: if dup, single or RAID0 is configured for
3488-
* any of metadata, system or data, else
3489-
* 1: if RAID5 is configured, or if RAID1 or
3490-
* RAID10 is configured and only two mirrors
3491-
* are used, else
3492-
* 2: if RAID6 is configured, else
3493-
* num_mirrors - 1: if RAID1 or RAID10 is
3494-
* configured and more than
3495-
* 2 mirrors are used.
3496-
*/
3497-
if (num_tolerated_disk_barrier_failures > 0 &&
3498-
((flags & (BTRFS_BLOCK_GROUP_DUP |
3499-
BTRFS_BLOCK_GROUP_RAID0)) ||
3500-
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK)
3501-
== 0)))
3502-
num_tolerated_disk_barrier_failures = 0;
3503-
else if (num_tolerated_disk_barrier_failures > 1) {
3504-
if (flags & (BTRFS_BLOCK_GROUP_RAID1 |
3505-
BTRFS_BLOCK_GROUP_RAID5 |
3506-
BTRFS_BLOCK_GROUP_RAID10)) {
3507-
num_tolerated_disk_barrier_failures = 1;
3508-
} else if (flags &
3509-
BTRFS_BLOCK_GROUP_RAID6) {
3510-
num_tolerated_disk_barrier_failures = 2;
3511-
}
3512-
}
3513-
}
3475+
u64 flags;
3476+
3477+
if (list_empty(&sinfo->block_groups[c]))
3478+
continue;
3479+
3480+
btrfs_get_block_group_info(&sinfo->block_groups[c],
3481+
&space);
3482+
if (space.total_bytes == 0 || space.used_bytes == 0)
3483+
continue;
3484+
flags = space.flags;
3485+
/*
3486+
* return
3487+
* 0: if dup, single or RAID0 is configured for
3488+
* any of metadata, system or data, else
3489+
* 1: if RAID5 is configured, or if RAID1 or
3490+
* RAID10 is configured and only two mirrors
3491+
* are used, else
3492+
* 2: if RAID6 is configured
3493+
*/
3494+
if (num_tolerated_disk_barrier_failures > 0 &&
3495+
((flags & (BTRFS_BLOCK_GROUP_DUP |
3496+
BTRFS_BLOCK_GROUP_RAID0)) ||
3497+
((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0)))
3498+
num_tolerated_disk_barrier_failures = 0;
3499+
else if (num_tolerated_disk_barrier_failures > 1 &&
3500+
(flags & (BTRFS_BLOCK_GROUP_RAID1 |
3501+
BTRFS_BLOCK_GROUP_RAID5 |
3502+
BTRFS_BLOCK_GROUP_RAID10)))
3503+
num_tolerated_disk_barrier_failures = 1;
3504+
else if (num_tolerated_disk_barrier_failures > 2 &&
3505+
(flags & BTRFS_BLOCK_GROUP_RAID6))
3506+
num_tolerated_disk_barrier_failures = 2;
35143507
}
35153508
up_read(&sinfo->groups_sem);
35163509
}

0 commit comments

Comments
 (0)