nilfs2: delete unnecessary condition in load_segment_summary
authorJiro SEKIBA <jir@unicus.jp>
Thu, 18 Feb 2010 10:11:35 +0000 (19:11 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Thu, 18 Feb 2010 11:09:03 +0000 (20:09 +0900)
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.

Signed-off-by: Jiro SEKIBA <jir@unicus.jp>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
fs/nilfs2/recovery.c

index c9c96c7825dc0e007d80bd1bc34004a3d86a051a..017bedc761a048c66b538008ef4b561163f474e0 100644 (file)
@@ -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;