On Thu, 18 Feb 2010 19:11:35 +0900, Jiro SEKIBA <j...@unicus.jp> wrote:
> 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.
> 
> Signed-off-by: Jiro SEKIBA <j...@unicus.jp>

Applied, thank you.

Ryusuke Konishi

> ---
>  fs/nilfs2/recovery.c |   41 +++++++++++------------------------------
>  1 files changed, 11 insertions(+), 30 deletions(-)
> 
> diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
> index c9c96c7..017bedc 100644
> --- a/fs/nilfs2/recovery.c
> +++ b/fs/nilfs2/recovery.c
> @@ -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;
> -- 
> 1.5.6.5
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to