nilfs2: delete unnecessary condition in load_segment_summary
PATCH 1/1 nilfs2: delete unnecessary condition in load_segment_summary
Hi,
This is a trivial patch to remove unnecessary condition.
load_segment_summary() checks crc of segment_summary OR crc of whole log data blocks based on boolean argument full_check. However, callers of the function pass only 1 as full_check, which means only whole log data blocks checking code is running all the time.
This patch deletes the condition and full_check argument and also deletes enum 'NILFS_SEG_FAIL_CHECKSUM_SEGSUM' and corresponding case clause, for it is nolonger used anymore.
--- fs/nilfs2/recovery.c | 41 +++++++++++------------------------------ 1 files changed, 11 insertions(+), 30 deletions(-)
fs/nilfs2/recovery.c +11 -30
@@ -39,7 +39,6 @@ enum {NILFS_SEG_FAIL_IO ,NILFS_SEG_FAIL_MAGIC ,NILFS_SEG_FAIL_SEQ , -NILFS_SEG_FAIL_CHECKSUM_SEGSUM ,NILFS_SEG_FAIL_CHECKSUM_SUPER_ROOT ,NILFS_SEG_FAIL_CHECKSUM_FULL , NILFS_SEG_FAIL_CONSISTENCY,
@@ -71,10 +70,6 @@ static int nilfs_warn_segment_error(int err)printk (KERN_WARNING "NILFS warning: Sequence number mismatch\n" );break ; -case NILFS_SEG_FAIL_CHECKSUM_SEGSUM : -printk (KERN_WARNING -"NILFS warning: Checksum error in segment summary\n" ); -break ;case NILFS_SEG_FAIL_CHECKSUM_SUPER_ROOT :printk (KERN_WARNING "NILFS warning: Checksum error in super root\n" );
@@ -206,19 +201,15 @@ int nilfs_read_super_root_block(struct super_block *sb, sector_t sr_block,* @pseg_start: start disk block number of partial segment * @seg_seq: sequence number requested * @ssi: pointer to nilfs_segsum_info struct to store information -* @full_check: full check flag -* (0: only checks segment summary CRC, 1: data CRC) */ static int load_segment_summary (struct nilfs_sb_info *sbi,sector_t pseg_start, -u64 seg_seq,struct nilfs_segsum_info *ssi, -int full_check) +u64 seg_seq,struct nilfs_segsum_info *ssi) {struct buffer_head *bh_sum;struct nilfs_segment_summary *sum; -unsigned long offset, nblock; -u64 check_bytes; -u32 crc, crc_sum; +unsigned long nblock; +u32 crc;int ret =NILFS_SEG_FAIL_IO ; bh_sum =sb_bread (sbi->s_super, pseg_start);
@@ -237,34 +228,24 @@ load_segment_summary(struct nilfs_sb_info *sbi, sector_t pseg_start, ret =NILFS_SEG_FAIL_SEQ ; goto failed; } -if (full_check) { - offset =sizeof (sum->ss_datasum); - check_bytes = - ((u64 )ssi->nblocks << sbi->s_super->s_blocksize_bits); - nblock = ssi->nblocks; - crc_sum =le32_to_cpu (sum->ss_datasum); - ret =NILFS_SEG_FAIL_CHECKSUM_FULL ; - }else {/* only checks segment summary */ - offset =sizeof (sum->ss_datasum) +sizeof (sum->ss_sumsum); - check_bytes = ssi->sumbytes; - nblock = ssi->nsumblk; - crc_sum =le32_to_cpu (sum->ss_sumsum); - ret =NILFS_SEG_FAIL_CHECKSUM_SEGSUM ; - } + nblock = ssi->nblocks;if (unlikely (nblock ==0 || nblock > sbi->s_nilfs->ns_blocks_per_segment)) {/* This limits the number of blocks read in the CRC check */ ret =NILFS_SEG_FAIL_CONSISTENCY ; goto failed; } -if (calc_crc_cont (sbi, bh_sum, &crc, offset, check_bytes, +if (calc_crc_cont (sbi, bh_sum, &crc,sizeof (sum->ss_datasum), + ((u64 )nblock << sbi->s_super->s_blocksize_bits), pseg_start, nblock)) { ret =NILFS_SEG_FAIL_IO ; goto failed; } -if (crc == crc_sum) +if (crc ==le32_to_cpu (sum->ss_datasum)) ret =0 ; +else + ret =NILFS_SEG_FAIL_CHECKSUM_FULL ; failed:brelse (bh_sum); out:
@@ -598,7 +579,7 @@ static int nilfs_do_roll_forward(struct the_nilfs *nilfs,while (segnum != ri->ri_segnum || pseg_start <= ri->ri_pseg_start) { - ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi,1 ); + ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi);if (ret) {if (ret ==NILFS_SEG_FAIL_IO ) { err = -EIO ;
@@ -821,7 +802,7 @@ int nilfs_search_super_root(struct the_nilfs *nilfs, struct nilfs_sb_info *sbi,for (;;) {/* Load segment summary */ - ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi,1 ); + ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi);if (ret) {if (ret ==NILFS_SEG_FAIL_IO ) goto failed;
Signature · 6 lines
1.5.6.5 -- To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 87sk8yn99k.wl%[email protected]
Ryusuke Konishi
AppliedQuoted 9 lines · Jiro SEKIBA
Hi,
This is a trivial patch to remove unnecessary condition.
load_segment_summary()checks crc ofsegment_summaryOR crc of whole log data blocks based on boolean argumentfull_check. However, callers of the function pass only 1 asfull_check, which means only whole log data blocks checking code is running all the time.
Quoted 5 lines
This patch deletes the condition and
full_checkargument and also deletes enum 'NILFS_SEG_FAIL_CHECKSUM_SEGSUM' and corresponding case clause, for it is nolonger used anymore.Signed-off-by Jiro SEKIBA <[email protected]>
Applied, thank you.
Ryusuke Konishi
Quoted 112 lines
--- fs/nilfs2/recovery.c | 41 +++++++++++------------------------------ 1 files changed, 11 insertions(+), 30 deletions(-)fs/nilfs2/recovery.c +11
-30@@ -39,7 +39,6 @@ enum {NILFS_SEG_FAIL_IO ,NILFS_SEG_FAIL_MAGIC ,NILFS_SEG_FAIL_SEQ , -NILFS_SEG_FAIL_CHECKSUM_SEGSUM ,NILFS_SEG_FAIL_CHECKSUM_SUPER_ROOT ,NILFS_SEG_FAIL_CHECKSUM_FULL , NILFS_SEG_FAIL_CONSISTENCY,@@ -71,10 +70,6 @@ static int nilfs_warn_segment_error(int err)printk (KERN_WARNING "NILFS warning: Sequence number mismatch\n" );break ; -case NILFS_SEG_FAIL_CHECKSUM_SEGSUM : -printk (KERN_WARNING -"NILFS warning: Checksum error in segment summary\n" ); -break ;case NILFS_SEG_FAIL_CHECKSUM_SUPER_ROOT :printk (KERN_WARNING "NILFS warning: Checksum error in super root\n" );@@ -206,19 +201,15 @@ int nilfs_read_super_root_block(struct super_block *sb, sector_t sr_block,* @pseg_start: start disk block number of partial segment * @seg_seq: sequence number requested * @ssi: pointer to nilfs_segsum_info struct to store information -* @full_check: full check flag -* (0: only checks segment summary CRC, 1: data CRC) */ static int load_segment_summary (struct nilfs_sb_info *sbi,sector_t pseg_start, -u64 seg_seq,struct nilfs_segsum_info *ssi, -int full_check) +u64 seg_seq,struct nilfs_segsum_info *ssi) {struct buffer_head *bh_sum;struct nilfs_segment_summary *sum; -unsigned long offset, nblock; -u64 check_bytes; -u32 crc, crc_sum; +unsigned long nblock; +u32 crc;int ret =NILFS_SEG_FAIL_IO ; bh_sum =sb_bread (sbi->s_super, pseg_start);@@ -237,34 +228,24 @@ load_segment_summary(struct nilfs_sb_info *sbi, sector_t pseg_start, ret =NILFS_SEG_FAIL_SEQ ; goto failed; } -if (full_check) { - offset =sizeof (sum->ss_datasum); - check_bytes = - ((u64 )ssi->nblocks << sbi->s_super->s_blocksize_bits); - nblock = ssi->nblocks; - crc_sum =le32_to_cpu (sum->ss_datasum); - ret =NILFS_SEG_FAIL_CHECKSUM_FULL ; - }else {/* only checks segment summary */ - offset =sizeof (sum->ss_datasum) +sizeof (sum->ss_sumsum); - check_bytes = ssi->sumbytes; - nblock = ssi->nsumblk; - crc_sum =le32_to_cpu (sum->ss_sumsum); - ret =NILFS_SEG_FAIL_CHECKSUM_SEGSUM ; - } + nblock = ssi->nblocks;if (unlikely (nblock ==0 || nblock > sbi->s_nilfs->ns_blocks_per_segment)) {/* This limits the number of blocks read in the CRC check */ ret =NILFS_SEG_FAIL_CONSISTENCY ; goto failed; } -if (calc_crc_cont (sbi, bh_sum, &crc, offset, check_bytes, +if (calc_crc_cont (sbi, bh_sum, &crc,sizeof (sum->ss_datasum), + ((u64 )nblock << sbi->s_super->s_blocksize_bits), pseg_start, nblock)) { ret =NILFS_SEG_FAIL_IO ; goto failed; } -if (crc == crc_sum) +if (crc ==le32_to_cpu (sum->ss_datasum)) ret =0 ; +else + ret =NILFS_SEG_FAIL_CHECKSUM_FULL ; failed:brelse (bh_sum); out:@@ -598,7 +579,7 @@ static int nilfs_do_roll_forward(struct the_nilfs *nilfs,while (segnum != ri->ri_segnum || pseg_start <= ri->ri_pseg_start) { - ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi,1 ); + ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi);if (ret) {if (ret ==NILFS_SEG_FAIL_IO ) { err = -EIO ;@@ -821,7 +802,7 @@ int nilfs_search_super_root(struct the_nilfs *nilfs, struct nilfs_sb_info *sbi,for (;;) {/* Load segment summary */ - ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi,1 ); + ret =load_segment_summary (sbi, pseg_start, seg_seq, &ssi);if (ret) {if (ret ==NILFS_SEG_FAIL_IO ) goto failed;Signature · 1 line
1.5.6.5
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html