e2fsck: optimize CPU usage in check_{block,inode}_bitmaps()

The boolean expression (!skip_group || csum_flag) is always true,
since if csum_flag is FALSE, skip_group must also be FALSE.  Hence, we
can just remove the expression from the conditional altogether, thus
simplifying the code and making it easier to read/understand.

Also, in the case where the bit is set in the bitmap, there's no point
repeatedly setting first_free to be ext2fs_block_count(fs->super).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Theodore Ts'o 2012-03-11 14:15:19 -04:00
parent deae60a087
commit d2c9c42a0b

View File

@ -372,15 +372,14 @@ redo_counts:
ctx->options &= ~E2F_OPT_DISCARD;
do_counts:
if (!bitmap && (!skip_group || csum_flag)) {
if (!bitmap) {
group_free++;
free_blocks++;
if (first_free > i)
first_free = i;
} else {
if (i > first_free)
e2fsck_discard_blocks(ctx, first_free,
(i - first_free));
} else if (i > first_free) {
e2fsck_discard_blocks(ctx, first_free,
(i - first_free));
first_free = ext2fs_blocks_count(fs->super);
}
blocks ++;
@ -627,7 +626,7 @@ do_counts:
inodes - first_free);
first_free = fs->super->s_inodes_per_group + 1;
}
} else if (!skip_group || csum_flag) {
} else {
group_free++;
free_inodes++;
if (first_free > inodes)