e2fsck: only retry to open the file system when the superblock is corrupt
Previously we were always retrying the ext2fs_open2() call with the
EXT2_FLAG_IGNORE_SB_ERRORS flag. It only makes sense to do this if
the superblock is reported as corrupt. Otherwise, it's a waste of
time, and results in printing an extra set of error messages to annoy
the user.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 42eef75..90065b3 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -1584,7 +1584,8 @@
* so that we are able to recover from more errors
* (e.g. some tool messing up some value in the sb).
*/
- if (!(flags & EXT2_FLAG_IGNORE_SB_ERRORS)) {
+ if ((retval == EXT2_ET_CORRUPT_SUPERBLOCK) &&
+ !(flags & EXT2_FLAG_IGNORE_SB_ERRORS)) {
if (fs)
ext2fs_close_free(&fs);
log_out(ctx, _("%s: Trying to load superblock "
diff --git a/tests/f_detect_xfs/expect b/tests/f_detect_xfs/expect
index f91010b..fb510d9 100644
--- a/tests/f_detect_xfs/expect
+++ b/tests/f_detect_xfs/expect
@@ -2,10 +2,6 @@
ext2fs_open2: Bad magic number in super-block
../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
../e2fsck/e2fsck: Bad magic number in super-block while trying to open test.img
-../e2fsck/e2fsck: Trying to load superblock despite errors...
-ext2fs_open2: Bad magic number in super-block
-../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
-../e2fsck/e2fsck: Bad magic number in super-block while trying to open test.img
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
diff --git a/tests/j_ext_dumpe2fs/expect b/tests/j_ext_dumpe2fs/expect
index a703bcf..db77a36 100644
--- a/tests/j_ext_dumpe2fs/expect
+++ b/tests/j_ext_dumpe2fs/expect
@@ -1,7 +1,5 @@
e2fsck external journal
../e2fsck/e2fsck: Filesystem has unsupported feature(s) while trying to open test.img
-../e2fsck/e2fsck: Trying to load superblock despite errors...
-../e2fsck/e2fsck: Filesystem has unsupported feature(s) while trying to open test.img
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4