From: Theodore Ts'o Date: Sun, 29 Jul 2012 04:01:29 +0000 (-0400) Subject: Revert "e2fsck: Skip journal checks if the fs is mounted and doesn't need recovery" X-Git-Tag: v1.42.5~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a85f83503a6eabeed6913520c97f49877dc2a366;p=thirdparty%2Fe2fsprogs.git Revert "e2fsck: Skip journal checks if the fs is mounted and doesn't need recovery" This reverts commit 47c1b8e16668daa6e74cee3c7b8bdf237ffefe70. The original reason for this commit was to speed up boots for hard drives. However, I've measured the time difference on a 1TB laptop drive, and it's not significant: 70ms vs 10ms when running e2fsck on a clean file system. The problem with this optimization is that we don't notice if the journal superblock has a non-zero s_errno field. If we don't transfer the error indicator from the journal superblock to the file system superblock, then the kernel will transfer it when the file system is remounted read-write, causing scary messages to appear in the syslog. (And since there was a bug in the kernel code which didn't clear the error indicator in the journal superblock, it would never get cleared.) Reported-by: Eric Sandeen Signed-off-by: "Theodore Ts'o" --- diff --git a/e2fsck/unix.c b/e2fsck/unix.c index 94260bd55..f71a125c5 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -1424,10 +1424,6 @@ failure: fprintf(ctx->logf, "Filesystem UUID: %s\n", e2p_uuid2str(sb->s_uuid)); - if ((ctx->mount_flags & EXT2_MF_MOUNTED) && - !(sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER)) - goto skip_journal; - /* * Make sure the ext3 superblock fields are consistent. */ @@ -1475,7 +1471,6 @@ failure: } } -skip_journal: /* * Check for compatibility with the feature sets. We need to * be more stringent than ext2fs_open().