Patchwork e2fsck: quiet harmless inode/blocks errors

login
register
mail settings
Submitter Andreas Dilger
Date April 12, 2012, 9:53 p.m.
Message ID <1334267637-25977-1-git-send-email-adilger@whamcloud.com>
Download mbox | patch
Permalink /patch/152192/
State Accepted
Headers show

Comments

Andreas Dilger - April 12, 2012, 9:53 p.m.
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 <adilger@whamcloud.com>
---
 e2fsck/pass5.c   |    6 ++----
 e2fsck/problem.c |    4 ++--
 2 files changed, 4 insertions(+), 6 deletions(-)
Theodore Ts'o - April 24, 2012, 8:23 p.m.
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 <adilger@whamcloud.com>

Thanks, applied.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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,