Whamcloud - gitweb
Merge branch 'maint'
authorTheodore Ts'o <tytso@mit.edu>
Sat, 8 Jun 2013 21:02:54 +0000 (17:02 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 8 Jun 2013 21:02:54 +0000 (17:02 -0400)
1  2 
e2fsck/pass1.c
e2fsck/problem.c
e2fsck/problem.h

diff --cc e2fsck/pass1.c
@@@ -1866,25 -1777,12 +1866,26 @@@ static void scan_extent_node(e2fsck_t c
  
        pctx->errcode = ext2fs_extent_get(ehandle, EXT2_EXTENT_FIRST_SIB,
                                          &extent);
 -      while (!pctx->errcode && info.num_entries-- > 0) {
 +      while ((pctx->errcode == 0 ||
 +              pctx->errcode == EXT2_ET_EXTENT_CSUM_INVALID) &&
 +             info.num_entries-- > 0) {
 +              failed_csum = 0;
                is_leaf = extent.e_flags & EXT2_EXTENT_FLAGS_LEAF;
                is_dir = LINUX_S_ISDIR(pctx->inode->i_mode);
+               last_lblk = extent.e_lblk + extent.e_len - 1;
  
                problem = 0;
 +              /* Ask to clear a corrupt extent block */
 +              if (pctx->errcode == EXT2_ET_EXTENT_CSUM_INVALID) {
 +                      pctx->blk = extent.e_pblk;
 +                      pctx->blk2 = extent.e_lblk;
 +                      pctx->num = extent.e_len;
 +                      problem = PR_1_EXTENT_CSUM_INVALID;
 +                      if (fix_problem(ctx, problem, pctx))
 +                              goto fix_problem_now;
 +                      failed_csum = 1;
 +              }
 +
                if (extent.e_pblk == 0 ||
                    extent.e_pblk < ctx->fs->super->s_first_data_block ||
                    extent.e_pblk >= ext2fs_blocks_count(ctx->fs->super))
Simple merge
Simple merge