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:
Zhao Lei 2015-07-16 15:00:46 +08:00 committed by Chris Mason
parent 8c204c9657
commit 2c4580454f

View File

@ -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);
} }