From 62acaa1de132a808949d71264731bba7fe095705 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 15 Jul 2002 16:54:42 -0400 Subject: [PATCH] pass2.c (e2fsck_pass2): Use dx_dir->numblocks instead of dx_dir->ino to indicate that a bad inode was cleared. --- e2fsck/ChangeLog | 5 +++++ e2fsck/pass2.c | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index 198d6f5b..da1d2c9e 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -1,3 +1,8 @@ +2002-07-15 Theodore Ts'o + + * pass2.c (e2fsck_pass2): Use dx_dir->numblocks instead of + dx_dir->ino to indicate that a bad inode was cleared. + 2002-06-26 Theodore Ts'o * pass1.c (check_blocks): Move htree handling to handle_htree(). diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c index 4ea55942..d730765b 100644 --- a/e2fsck/pass2.c +++ b/e2fsck/pass2.c @@ -148,7 +148,7 @@ void e2fsck_pass2(e2fsck_t ctx) #ifdef ENABLE_HTREE for (i=0; (dx_dir = e2fsck_dx_dir_info_iter(ctx, &i)) != 0;) { - if (dx_dir->ino == 0) + if (dx_dir->numblocks == 0) continue; clear_problem_context(&pctx); bad_dir = 0; @@ -221,13 +221,13 @@ void e2fsck_pass2(e2fsck_t ctx) } if (bad_dir && fix_problem(ctx, PR_2_HTREE_CLEAR, &pctx)) { clear_htree(ctx, dx_dir->ino); - dx_dir->ino = 0; + dx_dir->numblocks = 0; } #ifdef ENABLE_HTREE_CLEAR - if (dx_dir->ino) { + if (dx_dir->numblocks) { fix_problem(ctx, PR_2_HTREE_FCLR, &pctx); clear_htree(ctx, dx_dir->ino); - dx_dir->ino = 0; + dx_dir->numblocks = 0; } #endif } @@ -503,7 +503,7 @@ static void parse_int_node(ext2_filsys fs, if (fix_problem(cd->ctx, PR_2_HTREE_BADBLK, &cd->pctx)) { clear_htree(cd->ctx, cd->pctx.ino); - dx_dir->ino = 0; + dx_dir->numblocks = 0; return; } } @@ -610,7 +610,7 @@ static int check_dir_block(ext2_filsys fs, } #ifdef ENABLE_HTREE dx_dir = e2fsck_get_dx_dir_info(ctx, ino); - if (dx_dir && dx_dir->ino) { + if (dx_dir && dx_dir->numblocks) { if (db->blockcnt >= dx_dir->numblocks) { printf("XXX should never happen!!!\n"); abort();