From 8725134d27574605c3da74b46df909e419d02b63 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Thu, 30 Jul 2020 14:36:49 -0600 Subject: [PATCH] LU-5949 e2fsck: simplify inode badness handling Move the badness increment into fix_problem() so that code does not need to be spread across the code and explicitly set. Instead, take advantage of the fact that pctx->ino is almost always pointing at the bad inode and increment badness whenever fix_problem() is called on the inode. This also handles new problems in the future. That leaves only a handful of places in the code that need special handling to either set a higher badness (e.g. inode blocks that are directly referencing filesystem metadata or have wildly incorrect timestamps), or should not contribute to inode badness at all. The main exceptions are when reprocessing duplicate blocks in the inode (badness already set), and cleaning bad entries in a directory leaf block in check_dir_block(), which uses pctx->ino to reference the parent directory inode number. In such cases, fix_problem_bad() is called with 0 badness, since the leaf block was been repaired, and clearing the directory inode in this case is unnecessary. This patch should be merged into original badness patch on rebase. Fixes: 92a85a3ced2c ("e2fsck: track errors/badness found for each inode") Signed-off-by: Andreas Dilger Change-Id: I96cd21b5976991f0bb1c63fc99857c80e23ebbe5 Reviewed-on: https://review.whamcloud.com/41328 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Wang Shilong Reviewed-by: Artem Blagodarenko --- e2fsck/e2fsck.8.in | 7 +- e2fsck/e2fsck.h | 23 ++--- e2fsck/pass1.c | 179 ++++++++++++++++++++-------------- e2fsck/pass1b.c | 13 ++- e2fsck/pass2.c | 84 ++++++---------- e2fsck/pass3.c | 4 +- e2fsck/pass4.c | 1 - e2fsck/problem.c | 27 ++++- e2fsck/problem.h | 15 ++- e2fsck/unix.c | 10 +- tests/f_ibadness/expect.1 | 14 +++ tests/f_ibadness/script | 4 + tests/f_ibadness_bad_extents/expect.1 | 32 +++++- tests/f_ibadness_bad_extents/image.gz | Bin 91656 -> 91025 bytes tests/f_ibadness_bad_extents/script | 4 + tests/f_messy_inode/expect.1 | 14 +-- tests/f_messy_inode/script | 2 +- tests/filter.sed | 1 + 18 files changed, 264 insertions(+), 170 deletions(-) create mode 100644 tests/f_ibadness/script create mode 100644 tests/f_ibadness_bad_extents/script diff --git a/e2fsck/e2fsck.8.in b/e2fsck/e2fsck.8.in index 63ae0bd..7dc0203 100644 --- a/e2fsck/e2fsck.8.in +++ b/e2fsck/e2fsck.8.in @@ -223,12 +223,13 @@ or repairs. .TP .BI inode_badness_threshold= threshold_value A badness counter is associated with every inode, which determines the degree -of inode corruption. Each error found in the inode will increase the badness by -1 or 2, and inodes with a badness at or above +of inode corruption. Each error found in the inode will increase the badness +by 1 or 2, and inodes with a badness at or above .I threshold_value will be prompted for deletion. The default .I threshold_value -is 7. +is 12, and must either be 0 (disabled), or between 3 and 200, as some valid +inode states may set a badness of 1 or 2 that should not clear the inode. .TP .BI fragcheck During pass 1, print a detailed report of any discontiguous blocks for diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h index a7d0884..a3f0b5b 100644 --- a/e2fsck/e2fsck.h +++ b/e2fsck/e2fsck.h @@ -238,11 +238,9 @@ enum clone_opt { #define EXT4_XTIME_ANCIENT(ctx, sb, xtime, margin) \ ((sb)->s_mkfs_time > (margin) && (xtime) < (sb)->s_mkfs_time - (margin)) -#define BADNESS_NORMAL 1 -#define BADNESS_HIGH 2 -#define BADNESS_THRESHOLD 8 -#define BADNESS_BAD_MODE 100 -#define BADNESS_LARGE_FILE 2199023255552ULL +#define BADNESS_THRESHOLD 12 +#define BADNESS_BAD_MODE 0x8000 +#define BADNESS_MAX 0x7fff /* * Define the extended attribute refcount structure @@ -353,7 +351,7 @@ struct e2fsck_struct { /* E2fsck internal flags */ int flags; - int inode_badness_threshold; + unsigned int inode_badness_threshold; /* * How we display the progress update (for unix) @@ -671,11 +669,14 @@ extern int e2fsck_pass1_check_symlink(e2fsck_t ctx, ext2_ino_t ino, extern void e2fsck_clear_inode(e2fsck_t ctx, ext2_ino_t ino, struct ext2_inode *inode, int restart_flag, const char *source); -#define e2fsck_mark_inode_bad(ctx, ino, count) \ - e2fsck_mark_inode_bad_loc(ctx, ino, count, __func__, __LINE__) -extern void e2fsck_mark_inode_bad_loc(e2fsck_t ctx, ino_t ino, int count, - const char *func, const int line); -extern int is_inode_bad(e2fsck_t ctx, ino_t ino); +#define e2fsck_mark_inode_bad(ctx, pctx, code) \ + e2fsck_mark_inode_bad_loc(ctx, pctx, code, 1, __func__, __LINE__) +#define e2fsck_mark_inode_badder(ctx, pctx, code) \ + e2fsck_mark_inode_bad_loc(ctx, pctx, code, 2, __func__, __LINE__) +extern void e2fsck_mark_inode_bad_loc(e2fsck_t ctx, + struct problem_context *pctx, __u32 code, + int count, const char *func, const int line); +extern int e2fsck_fix_bad_inode(e2fsck_t ctx, struct problem_context *pctx); extern void e2fsck_intercept_block_allocations(e2fsck_t ctx); /* pass2.c */ diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 696c411..eafaa01 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -313,7 +313,6 @@ static void check_immutable(e2fsck_t ctx, struct problem_context *pctx) if (!(pctx->inode->i_flags & BAD_SPECIAL_FLAGS)) return; - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); if (!fix_problem(ctx, PR_1_SET_IMMUTABLE, pctx)) return; @@ -332,7 +331,6 @@ static void check_size(e2fsck_t ctx, struct problem_context *pctx) if (EXT2_I_SIZE(inode) == 0) return; - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); if (!fix_problem(ctx, PR_1_SET_NONZSIZE, pctx)) return; @@ -624,7 +622,6 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx, if (inode->i_extra_isize && (inode->i_extra_isize < min || inode->i_extra_isize > max || inode->i_extra_isize & 3)) { - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); if (!fix_problem(ctx, PR_1_EXTRA_ISIZE, pctx)) return; if (inode->i_extra_isize < min || inode->i_extra_isize > max) @@ -656,6 +653,10 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx, if (*eamagic == EXT2_EXT_ATTR_MAGIC) check_ea_in_inode(ctx, pctx, ea_ibody_quota); + if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_crtime, ctx->time_fudge)) + e2fsck_mark_inode_bad(ctx, pctx, PR_1_CRTIME_BAD); + else if (EXT4_XTIME_ANCIENT(ctx, sb, inode->i_crtime, ctx->time_fudge)) + e2fsck_mark_inode_bad(ctx, pctx, PR_1_CRTIME_BAD); /* * If the inode's extended atime (ctime, crtime, mtime) is stored in * the old, invalid format, repair it. @@ -668,7 +669,7 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx, CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, crtime) || CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, mtime))) { - if (!fix_problem(ctx, PR_1_EA_TIME_OUT_OF_RANGE, pctx)) + if (!fix_problem_bad(ctx, PR_1_EA_TIME_OUT_OF_RANGE, pctx, 2)) return; if (CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, atime)) @@ -680,7 +681,6 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx, if (CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, mtime)) inode->i_mtime_extra &= ~EXT4_EPOCH_MASK; dirty = 1; - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_HIGH); } out: @@ -865,7 +865,6 @@ static void check_is_really_dir(e2fsck_t ctx, struct problem_context *pctx, return; isdir: - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_TREAT_AS_DIRECTORY, pctx)) { inode->i_mode = (inode->i_mode & 07777) | LINUX_S_IFDIR; e2fsck_write_inode_full(ctx, pctx->ino, inode, @@ -1154,6 +1153,28 @@ err: return retval; } +int e2fsck_fix_bad_inode(e2fsck_t ctx, struct problem_context *pctx) +{ + __u16 badness; + int rc = 0; + + if (!ctx->inode_badness) + return 0; + + if (ext2fs_icount_fetch(ctx->inode_badness, pctx->ino, &badness)) + return 0; + + if ((badness & ~BADNESS_BAD_MODE) > ctx->inode_badness_threshold) { + __u64 pctx_num_sav = pctx->num; + + pctx->num = badness; + rc = fix_problem_bad(ctx, PR_1B_INODE_TOOBAD, pctx, 0); + pctx->num = pctx_num_sav; + } + + return rc; +} + static void finish_processing_inode(e2fsck_t ctx, ext2_ino_t ino, struct problem_context *pctx, int failed_csum) @@ -1173,7 +1194,7 @@ static void finish_processing_inode(e2fsck_t ctx, ext2_ino_t ino, #define FINISH_INODE_LOOP(ctx, ino, pctx, failed_csum) \ do { \ finish_processing_inode((ctx), (ino), (pctx), (failed_csum)); \ - if ((ctx)->flags & E2F_FLAG_ABORT) { \ + if (e2fsck_should_abort(ctx)) { \ e2fsck_pass1_check_unlock(ctx); \ return; \ } \ @@ -1856,9 +1877,8 @@ void e2fsck_pass1_run(e2fsck_t ctx) if (ctx->global_ctx) { if (ctx->options & E2F_OPT_DEBUG && ctx->options & E2F_OPT_MULTITHREAD) - fprintf(stderr, "thread %d jumping to group %u\n", - ctx->thread_info.et_thread_index, - ctx->thread_info.et_group_start); + log_out(ctx, "jumping to group %u\n", + ctx->thread_info.et_group_start); pctx.errcode = ext2fs_inode_scan_goto_blockgroup(scan, ctx->thread_info.et_group_start); if (pctx.errcode) { @@ -2201,19 +2221,15 @@ void e2fsck_pass1_run(e2fsck_t ctx) ehp = inode->i_block; #endif if ((ext2fs_extent_header_verify(ehp, - sizeof(inode->i_block)) == 0)) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); - if (fix_problem(ctx, PR_1_UNSET_EXTENT_FL, - &pctx)) { - inode->i_flags |= EXT4_EXTENTS_FL; + sizeof(inode->i_block)) == 0) && + (fix_problem(ctx, PR_1_UNSET_EXTENT_FL, &pctx))) { + inode->i_flags |= EXT4_EXTENTS_FL; #ifdef WORDS_BIGENDIAN - memcpy(inode->i_block, tmp_block, - sizeof(inode->i_block)); + memcpy(inode->i_block, tmp_block, + sizeof(inode->i_block)); #endif - e2fsck_write_inode(ctx, ino, inode, - "pass1"); - failed_csum = 0; - } + e2fsck_write_inode(ctx, ino, inode, "pass1"); + failed_csum = 0; } } @@ -2292,7 +2308,6 @@ void e2fsck_pass1_run(e2fsck_t ctx) * as a special case. */ if (inode->i_dtime && inode->i_links_count) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_ROOT_DTIME, &pctx)) { inode->i_dtime = 0; e2fsck_write_inode(ctx, ino, inode, @@ -2400,7 +2415,6 @@ void e2fsck_pass1_run(e2fsck_t ctx) * */ if (inode->i_dtime) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_SET_DTIME, &pctx)) { inode->i_dtime = 0; e2fsck_write_inode(ctx, ino, inode, "pass1"); @@ -2421,16 +2435,18 @@ void e2fsck_pass1_run(e2fsck_t ctx) /* Fixed in pass2, e2fsck_process_bad_inode(). */ if (inode->i_faddr || frag || fsize || (!ext2fs_has_feature_largedir(fs->super) && - (LINUX_S_ISDIR(inode->i_mode) && inode->i_size_high))) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + LINUX_S_ISDIR(inode->i_mode) && inode->i_size_high)) + e2fsck_mark_inode_bad(ctx, &pctx, + PR_2_DIR_SIZE_HIGH_ZERO); if ((fs->super->s_creator_os != EXT2_OS_HURD) && !ext2fs_has_feature_64bit(fs->super) && inode->osd2.linux2.l_i_file_acl_high != 0) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + e2fsck_mark_inode_bad(ctx, &pctx, + PR_2_I_FILE_ACL_HI_ZERO); if ((fs->super->s_creator_os != EXT2_OS_HURD) && !ext2fs_has_feature_huge_file(fs->super) && (inode->osd2.linux2.l_i_blocks_hi != 0)) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + e2fsck_mark_inode_bad(ctx, &pctx, PR_2_BLOCKS_HI_ZERO); if (inode->i_flags & EXT2_IMAGIC_FL) { if (imagic_fs) { if (!ctx->inode_imagic_map) @@ -2438,7 +2454,6 @@ void e2fsck_pass1_run(e2fsck_t ctx) ext2fs_mark_inode_bitmap2(ctx->inode_imagic_map, ino); } else { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_SET_IMAGIC, &pctx)) { inode->i_flags &= ~EXT2_IMAGIC_FL; e2fsck_write_inode(ctx, ino, @@ -2515,23 +2530,35 @@ void e2fsck_pass1_run(e2fsck_t ctx) check_size(ctx, &pctx); ctx->fs_sockets_count++; } else { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + e2fsck_mark_inode_bad(ctx, &pctx, PR_2_BAD_MODE); } + /* Future atime/mtime may be valid in rare cases, but are more + * likely to indicate corruption. Don't try to fix timestamps, + * but take into consideration whether inode is corrupted. If + * no other problems with the inode, probably it is OK. */ if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_atime, ctx->time_fudge)) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); - else if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_mtime, - ctx->time_fudge)) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + e2fsck_mark_inode_bad(ctx, &pctx, PR_1_INODE_BAD_TIME); + if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_mtime, ctx->time_fudge)) + e2fsck_mark_inode_bad(ctx, &pctx, PR_1_INODE_BAD_TIME); + /* Since ctime cannot be set directly from userspace, consider + * very old/future values worse than a bad atime/mtime. Same for + * crtime, but it is checked in check_inode_extra_space(). */ if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_ctime, ctx->time_fudge)) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_HIGH); + e2fsck_mark_inode_badder(ctx, &pctx, + PR_1_INODE_BAD_TIME); else if (!precreated_object(inode) && EXT4_XTIME_ANCIENT(ctx, sb, inode->i_ctime, ctx->time_fudge)) - e2fsck_mark_inode_bad(ctx, ino, BADNESS_HIGH); + e2fsck_mark_inode_badder(ctx, &pctx, + PR_1_INODE_BAD_TIME); - /* i_crtime is checked in check_inode_extra_space() */ + /* no restart if clearing bad inode before block processing */ + if (e2fsck_fix_bad_inode(ctx, &pctx)) { + e2fsck_clear_inode(ctx, ino, inode, 0, "pass1"); + goto next_unlock; + } if (!(inode->i_flags & EXT4_EXTENTS_FL) && !(inode->i_flags & EXT4_INLINE_DATA_FL)) { @@ -2593,6 +2620,7 @@ void e2fsck_pass1_run(e2fsck_t ctx) goto endit; } } + next_unlock: e2fsck_pass1_check_unlock(ctx); } process_inodes(ctx, block_buf, inodes_to_process, @@ -3749,29 +3777,42 @@ static EXT2_QSORT_TYPE process_inode_cmp(const void *a, const void *b) /* * Mark an inode as being bad and increment its badness counter. */ -void e2fsck_mark_inode_bad_loc(e2fsck_t ctx, ino_t ino, int count, - const char *func, const int line) +void e2fsck_mark_inode_bad_loc(e2fsck_t ctx, struct problem_context *pctx, + __u32 code, int badness, const char *func, + const int line) { - struct problem_context pctx; - __u16 result; + __u16 badness_before, badness_after; + __u64 pctx_num_sav = pctx->num; + + if (!ctx->inode_badness_threshold) /* badness is disabled */ + return; if (!ctx->inode_badness) { - clear_problem_context(&pctx); + errcode_t retval; - pctx.errcode = ext2fs_create_icount2(ctx->fs, 0, 0, NULL, - &ctx->inode_badness); - if (pctx.errcode) { - fix_problem(ctx, PR_1_ALLOCATE_ICOUNT, &pctx); + retval = ext2fs_create_icount2(ctx->fs, 0, 0, NULL, + &ctx->inode_badness); + if (retval) { + pctx->errcode = retval; + fix_problem(ctx, PR_1_ALLOCATE_ICOUNT, pctx); ctx->flags |= E2F_FLAG_ABORT; return; } } - ext2fs_icount_fetch(ctx->inode_badness, ino, &result); - ext2fs_icount_store(ctx->inode_badness, ino, count + result); + ext2fs_icount_fetch(ctx->inode_badness, pctx->ino, &badness_before); + if (badness + badness_before > BADNESS_MAX) + badness_after = BADNESS_MAX; + else if (badness < 0 && badness_before < -badness) + badness_after = 0; + else + badness_after = badness_before + badness; + ext2fs_icount_store(ctx->inode_badness, pctx->ino, badness_after); if (ctx->options & E2F_OPT_DEBUG) - fprintf(stderr, "%s:%d: increase inode %lu badness %u to %u\n", - func, line, (unsigned long)ino, result, count + result); + log_out(ctx, + "%s:%d: increase inode %lu badness %u to %u for %x\n", + func, line, (unsigned long)pctx->ino, badness_before, + badness_after, code); } static void add_encrypted_dir(e2fsck_t ctx, ino_t ino) @@ -3979,7 +4020,7 @@ static int check_ext_attr(e2fsck_t ctx, struct problem_context *pctx, (blk < fs->super->s_first_data_block) || (blk >= ext2fs_blocks_count(fs->super))) { /* Fixed in pass2, e2fsck_process_bad_inode(). */ - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); + e2fsck_mark_inode_bad(ctx, pctx, PR_2_FILE_ACL_ZERO); return 0; } @@ -4242,11 +4283,9 @@ static int handle_htree(e2fsck_t ctx, struct problem_context *pctx, if ((!LINUX_S_ISDIR(inode->i_mode) && fix_problem(ctx, PR_1_HTREE_NODIR, pctx)) || - (!ext2fs_has_feature_dir_index(fs->super))) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); - if (fix_problem(ctx, PR_1_HTREE_SET, pctx)) - return 1; - } + (!ext2fs_has_feature_dir_index(fs->super) && + fix_problem(ctx, PR_1_HTREE_SET, pctx))) + return 1; pctx->errcode = ext2fs_bmap2(fs, ino, inode, 0, 0, 0, 0, &blk); @@ -4254,7 +4293,6 @@ static int handle_htree(e2fsck_t ctx, struct problem_context *pctx, (blk == 0) || (blk < fs->super->s_first_data_block) || (blk >= ext2fs_blocks_count(fs->super))) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_HTREE_BADROOT, pctx)) return 1; else @@ -4263,7 +4301,6 @@ static int handle_htree(e2fsck_t ctx, struct problem_context *pctx, retval = io_channel_read_blk64(fs->io, blk, 1, block_buf); if (retval) { - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_HTREE_BADROOT, pctx)) return 1; } @@ -4495,12 +4532,10 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx, } if (try_repairs && problem) { - /* To ensure that extent is in inode */ - if (info.curr_level == 0) - e2fsck_mark_inode_bad(ctx, pctx->ino, - BADNESS_HIGH); report_problem: - if (fix_problem(ctx, problem, pctx)) { + /* Record badness only if extent is within inode */ + if (fix_problem_bad(ctx, problem, pctx, + info.curr_level == 0)) { if (ctx->invalid_bitmaps) { /* * If fsck knows the bitmaps are bad, @@ -4569,9 +4604,9 @@ report_problem: extent.e_pblk)) { next_try_repairs = 0; pctx->blk = blk; - fix_problem(ctx, + fix_problem_bad(ctx, PR_1_CRITICAL_METADATA_COLLISION, - pctx); + pctx, 2); if ((ctx->options & E2F_OPT_NO) == 0) ctx->flags |= E2F_FLAG_RESTART_LATER; } @@ -5047,7 +5082,6 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, * The mode might be in-correct. Increasing the badness by * small amount won't hurt much. */ - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_ZERO_LENGTH_DIR, pctx)) { e2fsck_clear_inode(ctx, ino, inode, 0, "check_blocks"); ctx->fs_directory_count--; @@ -5127,8 +5161,6 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, if (bad_size != 7) pctx->num = (pb.last_block + 1) * fs->blocksize; pctx->group = bad_size; - e2fsck_mark_inode_bad(ctx, ino, pb.is_dir ? BADNESS_HIGH : - BADNESS_NORMAL); if (fix_problem(ctx, PR_1_BAD_I_SIZE, pctx)) { ext2fs_inode_size_set(fs, inode, pctx->num); if (EXT2_I_SIZE(inode) == 0 && @@ -5150,7 +5182,6 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, (inode->i_flags & EXT4_HUGE_FILE_FL) && (inode->osd2.linux2.l_i_blocks_hi != 0)))) { pctx->num = pb.num_blocks; - e2fsck_mark_inode_bad(ctx, ino, BADNESS_NORMAL); if (fix_problem(ctx, PR_1_BAD_I_BLOCKS, pctx)) { inode->i_blocks = pb.num_blocks; inode->osd2.linux2.l_i_blocks_hi = pb.num_blocks >> 32; @@ -5182,7 +5213,11 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, e2fsck_rehash_dir_later(ctx, ino); out: - if (dirty_inode) + /* need restart if clearing bad inode after block processing */ + if (e2fsck_fix_bad_inode(ctx, pctx)) + e2fsck_clear_inode(ctx, ino, inode, E2F_FLAG_RESTART, + "check_blocks_bad"); + else if (dirty_inode) e2fsck_write_inode(ctx, ino, inode, "check_blocks"); } @@ -5320,10 +5355,8 @@ static int process_block(ext2_filsys fs, problem = PR_1_TOOBIG_SYMLINK; if (blk < fs->super->s_first_data_block || - blk >= ext2fs_blocks_count(fs->super)) { + blk >= ext2fs_blocks_count(fs->super)) problem = PR_1_ILLEGAL_BLOCK_NUM; - e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); - } /* * If this IND/DIND/TIND block is squatting atop some critical metadata @@ -5336,7 +5369,7 @@ static int process_block(ext2_filsys fs, blk < ctx->fs->super->s_blocks_count && ext2fs_test_block_bitmap2(ctx->block_metadata_map, blk)) { pctx->blk = blk; - fix_problem(ctx, PR_1_CRITICAL_METADATA_COLLISION, pctx); + fix_problem_bad(ctx, PR_1_CRITICAL_METADATA_COLLISION, pctx, 2); if ((ctx->options & E2F_OPT_NO) == 0) ctx->flags |= E2F_FLAG_RESTART_LATER; } diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c index a103342..26a1f04 100644 --- a/e2fsck/pass1b.c +++ b/e2fsck/pass1b.c @@ -340,6 +340,11 @@ static void pass1b(e2fsck_t ctx, char *block_buf) pb.last_blk = 0; pb.pctx->blk = pb.pctx->blk2 = 0; + if (e2fsck_fix_bad_inode(ctx, &pctx)) { + delete_file(ctx, ino, &pb, block_buf); + continue; + } + if (ext2fs_inode_has_valid_blocks2(fs, EXT2_INODE(&inode)) || (ino == EXT2_BAD_INO)) pctx.errcode = ext2fs_block_iterate3(fs, ino, @@ -575,7 +580,7 @@ static void pass1d(e2fsck_t ctx, char *block_buf) pctx.dir = p->dir; pctx.blkcount = p->num_dupblocks; pctx.num = meta_data ? shared_len+1 : shared_len; - fix_problem(ctx, PR_1D_DUP_FILE, &pctx); + fix_problem_bad(ctx, PR_1D_DUP_FILE, &pctx, pctx.blkcount / 2); pctx.blkcount = 0; pctx.num = 0; @@ -593,14 +598,14 @@ static void pass1d(e2fsck_t ctx, char *block_buf) pctx.inode = EXT2_INODE(&t->inode); pctx.ino = shared[i]; pctx.dir = t->dir; - fix_problem(ctx, PR_1D_DUP_FILE_LIST, &pctx); + fix_problem_bad(ctx, PR_1D_DUP_FILE_LIST, &pctx, 0); } /* * Even if the file shares blocks with itself, we still need to * clone the blocks. */ if (file_ok && (meta_data ? shared_len+1 : shared_len) != 0) { - fix_problem(ctx, PR_1D_DUP_BLOCKS_DEALT, &pctx); + fix_problem_bad(ctx, PR_1D_DUP_BLOCKS_DEALT, &pctx, 0); continue; } if (ctx->shared != E2F_SHARED_DELETE && @@ -720,8 +725,6 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, delete_file_block, &pb); if (pctx.errcode) fix_problem(ctx, PR_1B_BLOCK_ITERATE, &pctx); - if (ctx->inode_badness) - e2fsck_mark_inode_bad(ctx, ino, 0); if (ctx->inode_reg_map) ext2fs_unmark_inode_bitmap2(ctx->inode_reg_map, ino); ext2fs_unmark_inode_bitmap2(ctx->inode_dir_map, ino); diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c index c589a4e..b9df72b 100644 --- a/e2fsck/pass2.c +++ b/e2fsck/pass2.c @@ -38,6 +38,7 @@ * * Pass 2 frees the following data structures * - The inode_reg_map bitmap + * - The inode_badness bitmap */ #define _GNU_SOURCE 1 /* get strnlen() */ @@ -280,6 +281,10 @@ void e2fsck_pass2(e2fsck_t ctx) ext2fs_free_inode_bitmap(ctx->inode_reg_map); ctx->inode_reg_map = 0; } + if (ctx->inode_badness) { + ext2fs_free_icount(ctx->inode_badness); + ctx->inode_badness = 0; + } if (ctx->encrypted_dirs) { ext2fs_u32_list_free(ctx->encrypted_dirs); ctx->encrypted_dirs = 0; @@ -604,7 +609,7 @@ static _INLINE_ int check_filetype(e2fsck_t ctx, { int filetype = ext2fs_dirent_file_type(dirent); int should_be = EXT2_FT_UNKNOWN; - __u16 result; + __u16 badness = 0; struct ext2_inode inode; __u8 dirdata = 0; @@ -623,14 +628,14 @@ static _INLINE_ int check_filetype(e2fsck_t ctx, if (ctx->inode_badness) ext2fs_icount_fetch(ctx->inode_badness, dirent->inode, - &result); + &badness); if (ext2fs_test_inode_bitmap2(ctx->inode_dir_map, dirent->inode)) { should_be = EXT2_FT_DIR; } else if (ext2fs_test_inode_bitmap2(ctx->inode_reg_map, dirent->inode)) { should_be = EXT2_FT_REG_FILE; - } else if (ctx->inode_badness && result >= BADNESS_BAD_MODE) { + } else if (badness & BADNESS_BAD_MODE) { should_be = 0; } else { e2fsck_read_inode(ctx, dirent->inode, &inode, @@ -1495,15 +1500,19 @@ skip_checksum: problem = PR_2_UNUSED_INODE; if (problem) { - if (fix_problem(ctx, problem, &cd->pctx)) { + int next = 0; + + if (fix_problem_bad(ctx, problem, &cd->pctx, 0)) { dirent->inode = 0; dir_modified++; - goto next; + next = 1; } else { ext2fs_unmark_valid(fs); if (problem == PR_2_BAD_INO) - goto next; + next = 1; } + if (next) + goto next; } if (!encrypted && check_name(ctx, dirent, &cd->pctx)) @@ -1850,11 +1859,14 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, unsigned char *frag, *fsize; struct problem_context pctx; problem_t problem = 0; - __u16 badness; + __u16 badness = 0; + unsigned int flags = ctx->fs->flags; - if (ctx->inode_badness) - ext2fs_icount_fetch(ctx->inode_badness, ino, &badness); + flags = ctx->fs->flags; + ctx->fs->flags |= EXT2_FLAG_IGNORE_CSUM_ERRORS; e2fsck_read_inode(ctx, ino, &inode, "process_bad_inode"); + ctx->fs->flags = (flags & EXT2_FLAG_IGNORE_CSUM_ERRORS) | + (ctx->fs->flags & ~EXT2_FLAG_IGNORE_CSUM_ERRORS); clear_problem_context(&pctx); pctx.ino = ino; @@ -1868,7 +1880,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; } if (!LINUX_S_ISDIR(inode.i_mode) && !LINUX_S_ISREG(inode.i_mode) && @@ -1903,10 +1914,11 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, not_fixed++; problem = 0; /* - * A high value is associated with bad mode in order to detect + * A large value is associated with bad mode in order to detect * that mode was corrupt in check_filetype() */ - badness += BADNESS_BAD_MODE; + e2fsck_mark_inode_bad_loc(ctx, &pctx, problem, BADNESS_BAD_MODE, + __func__, __LINE__); } if (inode.i_faddr) { @@ -1915,7 +1927,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; } switch (fs->super->s_creator_os) { @@ -1933,7 +1944,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; pctx.num = 0; } if (fsize && *fsize) { @@ -1943,26 +1953,9 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; pctx.num = 0; } - /* In pass1 these conditions were used to mark inode bad so that - * it calls e2fsck_process_bad_inode and make an extensive check - * plus prompt for action to be taken. To compensate for badness - * incremented in pass1 by this condition, decrease it. - */ - if ((inode.i_faddr || frag || fsize || - (LINUX_S_ISDIR(inode.i_mode) && inode.i_size_high)) || - (inode.i_file_acl && - (!(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR) || - (inode.i_file_acl < fs->super->s_first_data_block) || - (inode.i_file_acl >= fs->super->s_blocks_count)))) { - /* badness can be 0 if called from pass4. */ - if (badness) - badness -= BADNESS_NORMAL; - } - if ((fs->super->s_creator_os == EXT2_OS_LINUX) && !ext2fs_has_feature_huge_file(fs->super) && (inode.osd2.linux2.l_i_blocks_hi != 0)) { @@ -1971,8 +1964,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode.osd2.linux2.l_i_blocks_hi = 0; inode_modified++; } - /* Badness was increased in pass1 for this condition */ - /* badness += BADNESS_NORMAL; */ } if ((fs->super->s_creator_os == EXT2_OS_LINUX) && @@ -1984,7 +1975,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; } if (ext2fs_file_acl_block(fs, &inode) && @@ -1995,7 +1985,6 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; } if (inode.i_size_high && !ext2fs_has_feature_largedir(fs->super) && inode.i_blocks < 1ULL << (29 - EXT2_BLOCK_SIZE_BITS(fs->super)) && @@ -2005,29 +1994,20 @@ int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir, inode_modified++; } else not_fixed++; - badness += BADNESS_NORMAL; } - /* - * The high value due to BADNESS_BAD_MODE should not delete the inode. - */ - if (ctx->inode_badness && (badness - (badness >= BADNESS_BAD_MODE ? - BADNESS_BAD_MODE : 0)) >= - ctx->inode_badness_threshold) { - pctx.num = badness; - if (fix_problem(ctx, PR_2_INODE_TOOBAD, &pctx)) { - deallocate_inode(ctx, ino, 0); - if (ctx->flags & E2F_FLAG_SIGNAL_MASK) - return 0; - return 1; - } + /* The high value from BADNESS_BAD_MODE should not delete the inode */ + if (e2fsck_fix_bad_inode(ctx, &pctx)) { + deallocate_inode(ctx, ino, 0); + if (ctx->flags & E2F_FLAG_SIGNAL_MASK) + return 0; + inode_modified = 0; + } else { not_fixed++; } if (inode_modified) e2fsck_write_inode(ctx, ino, &inode, "process_bad_inode"); - if (ctx->inode_badness) - ext2fs_icount_store(ctx->inode_badness, ino, 0); return 0; } @@ -2047,7 +2027,7 @@ static int allocate_dir_block(e2fsck_t ctx, char *block; struct ext2_inode inode; - if (fix_problem(ctx, PR_2_DIRECTORY_HOLE, pctx) == 0) + if (fix_problem_bad(ctx, PR_2_DIRECTORY_HOLE, pctx, 0) == 0) return 1; /* diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c index 2cd085e..b0142dc 100644 --- a/e2fsck/pass3.c +++ b/e2fsck/pass3.c @@ -464,7 +464,7 @@ unlink: pctx.errcode = retval; fix_problem(ctx, PR_3_ERR_FIND_LPF, &pctx); } - if (!fix_problem(ctx, PR_3_NO_LF_DIR, 0)) + if (!fix_problem(ctx, PR_3_NO_LF_DIR, &pctx)) return 0; /* @@ -725,7 +725,7 @@ static int fix_dotdot_proc(struct ext2_dir_entry *dirent, } dirent->inode = fp->parent; - dirdata = dirent->name_len & (~EXT2_FT_MASK << 8); + dirdata = dirent->name_len & ((__u16)~EXT2_FT_MASK << 8); if (ext2fs_has_feature_filetype(fp->ctx->fs->super)) ext2fs_dirent_set_file_type(dirent, EXT2_FT_DIR); diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c index e7dde1d..8c2d2f1 100644 --- a/e2fsck/pass4.c +++ b/e2fsck/pass4.c @@ -275,7 +275,6 @@ void e2fsck_pass4(e2fsck_t ctx) } ext2fs_free_icount(ctx->inode_link_info); ctx->inode_link_info = 0; ext2fs_free_icount(ctx->inode_count); ctx->inode_count = 0; - ext2fs_free_icount(ctx->inode_badness); ctx->inode_badness = 0; ext2fs_free_inode_bitmap(ctx->inode_bb_map); ctx->inode_bb_map = 0; ea_refcount_free(ctx->ea_inode_refs); diff --git a/e2fsck/problem.c b/e2fsck/problem.c index ab94a1b..6fb1d4e 100644 --- a/e2fsck/problem.c +++ b/e2fsck/problem.c @@ -1359,6 +1359,11 @@ static struct e2fsck_problem problem_table[] = { " %b--%c", PROMPT_NONE, PR_LATCH_DBLOCK | PR_PREEN_NOHDR, 0, 0, 0 }, + /* Inode is badly corrupt (badness value = ) */ + { PR_1B_INODE_TOOBAD, + N_("@i %i is badly corrupt (badness value = %N). "), + PROMPT_CLEAR, PR_PREEN_OK }, + /* Pass 1C: Scan directories for inodes with multiply-claimed blocks. */ { PR_1C_PASS_HEADER, N_("Pass 1C: Scanning directories for @is with @m @bs\n"), @@ -1846,7 +1851,7 @@ static struct e2fsck_problem problem_table[] = { N_("Encrypted @E is too short.\n"), PROMPT_CLEAR, 0, 0, 0, 0 }, - /* Inode too bad */ + /* Inode is badly corrupt (badness value = ) */ { PR_2_INODE_TOOBAD, N_("@i %i is badly corrupt (badness value = %N). "), PROMPT_CLEAR, PR_PREEN_OK }, @@ -2435,7 +2440,8 @@ static void print_problem(FILE *f, problem_t code, int answer, int fixed, fputs("/>\n", f); } -int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx) +int fix_problem_loc(e2fsck_t ctx, problem_t code, struct problem_context *pctx, + int badness, const char *func, const int line) { ext2_filsys fs = ctx->fs; struct e2fsck_problem *ptr; @@ -2446,6 +2452,10 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx) int suppress = 0; int fixed = 0; + /* ino is always set in pass1, where we will hit most badness */ + if (pctx && pctx->ino != 0 && badness && code < PR_3_PASS_HEADER) + e2fsck_mark_inode_bad_loc(ctx, pctx, code, badness, func, line); + ptr = find_problem(code); if (!ptr) { printf(_("Unhandled error code (0x%x)!\n"), code); @@ -2493,7 +2503,8 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx) if (ptr->flags & PR_LATCH_MASK) { ldesc = find_latch(ptr->flags & PR_LATCH_MASK); if (ldesc->question && !(ldesc->flags & PRL_LATCHED)) { - ans = fix_problem(ctx, ldesc->question, pctx); + ans = fix_problem_loc(ctx, ldesc->question, pctx, + 0, func, line); if (ans == 1) ldesc->flags |= PRL_YES; if (ans == 0) @@ -2596,7 +2607,8 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx) fatal_error(ctx, 0); if (ptr->flags & PR_AFTER_CODE) - answer = fix_problem(ctx, ptr->second_code, pctx); + answer = fix_problem_loc(ctx, ptr->second_code, pctx, + 0, func, line); if (answer && (ptr->prompt != PROMPT_NONE) && !(ptr->flags & PR_NOT_A_FIX)) { @@ -2647,6 +2659,13 @@ void preenhalt(e2fsck_t ctx) return; } +void e2fsck_mark_inode_bad_loc(e2fsck_t ctx, + struct problem_context *pctx, __u32 code, + int count, const char *func, const int line) +{ + return; +} + errcode_t profile_get_string(profile_t profile, const char *name, const char *subname, const char *subsubname, const char *def_val, diff --git a/e2fsck/problem.h b/e2fsck/problem.h index d060d2c..e0a90a7 100644 --- a/e2fsck/problem.h +++ b/e2fsck/problem.h @@ -694,6 +694,9 @@ struct problem_context { /* Inode has illegal EA value inode */ #define PR_1_ATTR_VALUE_EA_INODE 0x010083 +/* Inode has bad timestamp */ +#define PR_1_INODE_BAD_TIME 0x010084 + /* Parent inode has invalid EA entry. EA inode does not have * EXT4_EA_INODE_FL flag. Delete EA entry? */ #define PR_1_ATTR_NO_EA_INODE_FL 0x010085 @@ -769,6 +772,9 @@ struct problem_context { /* Duplicate/bad block range in inode */ #define PR_1B_DUP_RANGE 0x011008 +/* Inode is badly corrupt (badness value = ) */ +#define PR_1B_INODE_TOOBAD 0x011009 + /* Pass 1C: Scan directories for inodes with dup blocks. */ #define PR_1C_PASS_HEADER 0x012000 @@ -1060,7 +1066,7 @@ struct problem_context { /* Encrypted directory entry is too short */ #define PR_2_BAD_ENCRYPTED_NAME 0x020050 -/* Inode completely corrupt */ +/* Inode is badly corrupt (badness value = ) */ #define PR_2_INODE_TOOBAD 0x020051 /* Entry dirdata length set incorrectly */ @@ -1322,7 +1328,12 @@ struct problem_context { /* * Function declarations */ -int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx); +#define fix_problem(ctx, code, pctx) \ + fix_problem_bad(ctx, code, pctx, 1) +#define fix_problem_bad(ctx, code, pctx, badness) \ + fix_problem_loc(ctx, code, pctx, badness, __func__, __LINE__) +int fix_problem_loc(e2fsck_t ctx, problem_t code, struct problem_context *pctx, + int badness, const char *func, const int line); int end_problem_latch(e2fsck_t ctx, int mask); int set_latch_flags(int mask, int setflags, int clearflags); int get_latch_flags(int mask, int *value); diff --git a/e2fsck/unix.c b/e2fsck/unix.c index ebb1b84..a6e6305 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -791,16 +791,20 @@ static void parse_extended_opts(e2fsck_t ctx, const char *opts) } /* -E inode_badness_threshold= */ } else if (strcmp(token, "inode_badness_threshold") == 0) { + unsigned int val; + if (!arg) { extended_usage++; continue; } - ctx->inode_badness_threshold = strtoul(arg, &p, 0); - if (*p != '\0' || ctx->inode_badness_threshold > 200) { - fprintf(stderr, _("Invalid badness value.\n")); + val = strtoul(arg, &p, 0); + if (*p != '\0' || (val < 3 && val != 0) || val > 200) { + fprintf(stderr, _("Invalid badness '%s'\n"), + arg); extended_usage++; continue; } + ctx->inode_badness_threshold = val; } else if (strcmp(token, "journal_only") == 0) { if (arg) { extended_usage++; diff --git a/tests/f_ibadness/expect.1 b/tests/f_ibadness/expect.1 index 24b3444..a21e499 100644 --- a/tests/f_ibadness/expect.1 +++ b/tests/f_ibadness/expect.1 @@ -1,23 +1,37 @@ Pass 1: Checking inodes, blocks, and sizes +e2fsck_pass1_run: increase inode 13 badness 0 to 1 for 10005 Inode 13 is in use, but has dtime set. Fix? yes +e2fsck_pass1_run: increase inode 13 badness 1 to 2 for 2000f +e2fsck_pass1_run: increase inode 13 badness 2 to 3 for 20044 +e2fsck_pass1_run: increase inode 13 badness 3 to 5 for 10084 +check_ext_attr: increase inode 13 badness 5 to 6 for 2000e +process_block: increase inode 13 badness 6 to 7 for 1000e Inode 13 has illegal block(s). Clear? yes Illegal block #0 (4294967295) in inode 13. CLEARED. +process_block: increase inode 13 badness 7 to 8 for 1000e Illegal block #1 (4294967295) in inode 13. CLEARED. +process_block: increase inode 13 badness 8 to 9 for 1000e Illegal block #7 (12345678) in inode 13. CLEARED. +process_block: increase inode 13 badness 9 to 10 for 1000e Illegal triple indirect block (1234567) in inode 13. CLEARED. +check_blocks: increase inode 13 badness 10 to 11 for 1000d Inode 13, i_blocks is 3453453, should be 138. Fix? yes Pass 2: Checking directory structure +e2fsck_process_bad_inode: increase inode 13 badness 11 to 12 for 2000e i_file_acl for inode 13 (/testfile) is 345, should be zero. Clear? yes +e2fsck_process_bad_inode: increase inode 13 badness 12 to 13 for 2000d i_faddr for inode 13 (/testfile) is 34534, should be zero. Clear? yes Inode 13 is badly corrupt (badness value = 13). Clear? yes +Entry 'testfile' in / (2) has deleted/unused inode 13. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information diff --git a/tests/f_ibadness/script b/tests/f_ibadness/script new file mode 100644 index 0000000..324a3e4 --- /dev/null +++ b/tests/f_ibadness/script @@ -0,0 +1,4 @@ +FSCK_OPT="-fyd" +SECOND_FSCK_OPT=-yf + +. $cmd_dir/run_e2fsck diff --git a/tests/f_ibadness_bad_extents/expect.1 b/tests/f_ibadness_bad_extents/expect.1 index 664b3ed..d627834 100644 --- a/tests/f_ibadness_bad_extents/expect.1 +++ b/tests/f_ibadness_bad_extents/expect.1 @@ -1,24 +1,45 @@ Pass 1: Checking inodes, blocks, and sizes +e2fsck_pass1_run: increase inode 12 badness 0 to 1 for 1005c +Inode 12 missing EXTENT_FL, but is in extents format +Fix? yes + +e2fsck_pass1_run: increase inode 12 badness 1 to 2 for 10005 +Inode 12 is in use, but has dtime set. Fix? yes + +e2fsck_pass1_run: increase inode 12 badness 2 to 3 for 20044 +e2fsck_pass1_run: increase inode 12 badness 3 to 4 for 10084 +e2fsck_pass1_run: increase inode 12 badness 4 to 5 for 10084 +e2fsck_pass1_run: increase inode 12 badness 5 to 7 for 10084 +check_ext_attr: increase inode 12 badness 7 to 8 for 2000e +scan_extent_node: increase inode 12 badness 8 to 9 for 10058 Inode 12 has an invalid extent (logical block 0, invalid physical block 1231231222, len 492) Clear? yes +scan_extent_node: increase inode 12 badness 9 to 10 for 10058 Inode 12 has an invalid extent (logical block 556, invalid physical block 4294967295, len 45) Clear? yes +scan_extent_node: increase inode 12 badness 10 to 11 for 10058 Inode 12 has an invalid extent (logical block 666, invalid physical block 4294967295, len 5) Clear? yes +scan_extent_node: increase inode 12 badness 11 to 12 for 10058 Inode 12 has an invalid extent (logical block 700, invalid physical block 4294967295, len 45) Clear? yes +check_blocks: increase inode 12 badness 12 to 13 for 1000d Inode 12, i_blocks is 984, should be 0. Fix? yes +Inode 12 is badly corrupt (badness value = 13). Clear? yes + +Restarting e2fsck from the beginning... +Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure -Inode 12 is badly corrupt (badness value = 9). Clear? yes +Entry 'testfile' in / (2) has deleted/unused inode 12. Clear? yes Pass 3: Checking directory connectivity Pass 4: Checking reference counts @@ -32,6 +53,15 @@ Fix? yes Free blocks count wrong (14584, counted=15076). Fix? yes +Inode bitmap differences: -12 +Fix? yes + +Free inodes count wrong for group #0 (1012, counted=1013). +Fix? yes + +Free inodes count wrong (2036, counted=2037). +Fix? yes + test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** test_filesys: 11/2048 files (0.0% non-contiguous), 1308/16384 blocks diff --git a/tests/f_ibadness_bad_extents/image.gz b/tests/f_ibadness_bad_extents/image.gz index 1c267f0e3768932fca5312540950bf80c0a379ea..65d1b46b592359f9849a89168a39647e29bafce2 100644 GIT binary patch literal 91025 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 literal 91656 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 Ax&QzG diff --git a/tests/f_ibadness_bad_extents/script b/tests/f_ibadness_bad_extents/script new file mode 100644 index 0000000..324a3e4 --- /dev/null +++ b/tests/f_ibadness_bad_extents/script @@ -0,0 +1,4 @@ +FSCK_OPT="-fyd" +SECOND_FSCK_OPT=-yf + +. $cmd_dir/run_e2fsck diff --git a/tests/f_messy_inode/expect.1 b/tests/f_messy_inode/expect.1 index cc4819e..67cca25 100644 --- a/tests/f_messy_inode/expect.1 +++ b/tests/f_messy_inode/expect.1 @@ -1,31 +1,19 @@ Filesystem did not have a UUID; generating one. Pass 1: Checking inodes, blocks, and sizes -check_ext_attr:: increase inode 14 badness 0 to 1 -process_block:: increase inode 14 badness 1 to 2 Inode 14 has illegal block(s). Clear? yes Illegal block #2 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 2 to 3 Illegal block #3 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 3 to 4 Illegal block #4 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 4 to 5 Illegal block #5 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 5 to 6 Illegal block #6 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 6 to 7 Illegal block #7 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 7 to 8 Illegal block #8 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 8 to 9 Illegal block #9 (4294901760) in inode 14. CLEARED. -process_block:: increase inode 14 badness 9 to 10 Illegal block #10 (4294901760) in inode 14. CLEARED. -check_blocks:: increase inode 14 badness 10 to 11 Inode 14, i_size is 18446462598732849291, should be 2048. Fix? yes -check_blocks:: increase inode 14 badness 11 to 12 Inode 14, i_blocks is 18, should be 4. Fix? yes Pass 2: Checking directory structure @@ -34,6 +22,8 @@ Clear? yes Inode 14 is badly corrupt (badness value = 13). Clear? yes +Entry 'MAKEDEV' in / (2) has deleted/unused inode 14. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information diff --git a/tests/f_messy_inode/script b/tests/f_messy_inode/script index fe3a2c5..3277356 100644 --- a/tests/f_messy_inode/script +++ b/tests/f_messy_inode/script @@ -1,4 +1,4 @@ -FSCK_OPT="-fy -d" +FSCK_OPT="-fy" OUT1=$test_name.1.log AFTER_CMD="sed -i -e 's/:[0-9]\{4\}:/::/' $OUT1" diff --git a/tests/filter.sed b/tests/filter.sed index 796186e..a1cf16d 100644 --- a/tests/filter.sed +++ b/tests/filter.sed @@ -38,3 +38,4 @@ s/mmp_update_date: .*/mmp_update_date: test date/ s/mmp_update_time: .*/mmp_update_time: test_time/ s/MMP last updated by '.*' on .*/MMP last updated by 'test_node' on test date/ s/MMP update by '.*' at .*/MMP last updated by 'test_node' on test date/ +s/:[0-9]*: \(increase inode [0-9]* badness\)/: \1/ -- 1.8.3.1