2012-04-12 21:53:59

by Andreas Dilger

[permalink] [raw]
Subject: [PATCH] e2fsck: quiet harmless inode/blocks errors

Don't consider only an error in the superblock summary as incorrect.
The kernel does not update this field except at unmount time, so
don't print errors during a "-n" run if there is nothing else wrong.
Any other unfixed errors will themselves mark the filesystem invalid.

Signed-off-by: Andreas Dilger <[email protected]>
---
e2fsck/pass5.c | 6 ++----
e2fsck/problem.c | 4 ++--
2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
index 8ebddf8..8312fe0 100644
--- a/e2fsck/pass5.c
+++ b/e2fsck/pass5.c
@@ -471,8 +471,7 @@ redo_counts:
if (fix_problem(ctx, PR_5_FREE_BLOCK_COUNT, &pctx)) {
ext2fs_free_blocks_count_set(fs->super, free_blocks);
ext2fs_mark_super_dirty(fs);
- } else
- ext2fs_unmark_valid(fs);
+ }
}
errout:
ext2fs_free_mem(&free_array);
@@ -746,8 +745,7 @@ do_counts:
if (fix_problem(ctx, PR_5_FREE_INODE_COUNT, &pctx)) {
fs->super->s_free_inodes_count = free_inodes;
ext2fs_mark_super_dirty(fs);
- } else
- ext2fs_unmark_valid(fs);
+ }
}
errout:
ext2fs_free_mem(&free_array);
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index d51a408..b60cf79 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -1621,7 +1621,7 @@ static struct e2fsck_problem problem_table[] = {
/* Free inodes count wrong */
{ PR_5_FREE_INODE_COUNT,
N_("Free @is count wrong (%i, counted=%j).\n"),
- PROMPT_FIX, PR_PREEN_OK | PR_PREEN_NOMSG },
+ PROMPT_FIX, PR_PREEN_OK | PR_NO_OK | PR_PREEN_NOMSG },

/* Free blocks count for group wrong */
{ PR_5_FREE_BLOCK_COUNT_GROUP,
@@ -1631,7 +1631,7 @@ static struct e2fsck_problem problem_table[] = {
/* Free blocks count wrong */
{ PR_5_FREE_BLOCK_COUNT,
N_("Free @bs count wrong (%b, counted=%c).\n"),
- PROMPT_FIX, PR_PREEN_OK | PR_PREEN_NOMSG },
+ PROMPT_FIX, PR_PREEN_OK | PR_NO_OK | PR_PREEN_NOMSG },

/* Programming error: bitmap endpoints don't match */
{ PR_5_BMAP_ENDPOINTS,
--
1.7.3.4



2012-04-24 20:23:09

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] e2fsck: quiet harmless inode/blocks errors

On Thu, Apr 12, 2012 at 03:53:57PM -0600, Andreas Dilger wrote:
> Don't consider only an error in the superblock summary as incorrect.
> The kernel does not update this field except at unmount time, so
> don't print errors during a "-n" run if there is nothing else wrong.
> Any other unfixed errors will themselves mark the filesystem invalid.
>
> Signed-off-by: Andreas Dilger <[email protected]>

Thanks, applied.

- Ted