Commit 2c458045 authored by Zhao Lei's avatar Zhao Lei Committed by Chris Mason

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: default avatarZhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 8c204c96
...@@ -3449,13 +3449,12 @@ int btrfs_calc_num_tolerated_disk_barrier_failures( ...@@ -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,13 +3472,14 @@ int btrfs_calc_num_tolerated_disk_barrier_failures( ...@@ -3473,13 +3472,14 @@ 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],
&space);
if (space.total_bytes == 0 || space.used_bytes == 0)
continue; continue;
flags = space.flags; flags = space.flags;
/* /*
...@@ -3489,29 +3489,22 @@ int btrfs_calc_num_tolerated_disk_barrier_failures( ...@@ -3489,29 +3489,22 @@ int btrfs_calc_num_tolerated_disk_barrier_failures(
* 1: if RAID5 is configured, or if RAID1 or * 1: if RAID5 is configured, or if RAID1 or
* RAID10 is configured and only two mirrors * RAID10 is configured and only two mirrors
* are used, else * are used, else
* 2: if RAID6 is configured, else * 2: if RAID6 is configured
* num_mirrors - 1: if RAID1 or RAID10 is
* configured and more than
* 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) ((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0)))
== 0)))
num_tolerated_disk_barrier_failures = 0; num_tolerated_disk_barrier_failures = 0;
else if (num_tolerated_disk_barrier_failures > 1) { else if (num_tolerated_disk_barrier_failures > 1 &&
if (flags & (BTRFS_BLOCK_GROUP_RAID1 | (flags & (BTRFS_BLOCK_GROUP_RAID1 |
BTRFS_BLOCK_GROUP_RAID5 | BTRFS_BLOCK_GROUP_RAID5 |
BTRFS_BLOCK_GROUP_RAID10)) { BTRFS_BLOCK_GROUP_RAID10)))
num_tolerated_disk_barrier_failures = 1; num_tolerated_disk_barrier_failures = 1;
} else if (flags & else if (num_tolerated_disk_barrier_failures > 2 &&
BTRFS_BLOCK_GROUP_RAID6) { (flags & BTRFS_BLOCK_GROUP_RAID6))
num_tolerated_disk_barrier_failures = 2; num_tolerated_disk_barrier_failures = 2;
} }
}
}
}
up_read(&sinfo->groups_sem); up_read(&sinfo->groups_sem);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment