2007-05-08 17:43:26

by Daniel Drake

[permalink] [raw]
Subject: [PATCH e2fsprogs] Restore backup superblocks in preen mode

The restoration of backup superblocks seems to be reversed in the current
e2fsprogs:

When running without preen mode, e2fsck searches and locates a backup
superblock and fixes the primary superblock without any user intervention.

When running in preen mode, e2fsck prints a message describing how the user
can specify the location of a backup superblock, and exits without doing any
repair.

This patch corrects the issue.

Signed-off-by: Daniel Drake <[email protected]>

Index: e2fsprogs-1.39/e2fsck/unix.c
===================================================================
--- e2fsprogs-1.39.orig/e2fsck/unix.c
+++ e2fsprogs-1.39/e2fsck/unix.c
@@ -932,7 +932,7 @@ restart:
} else
retval = ext2fs_open2(ctx->filesystem_name, ctx->io_options,
flags, 0, 0, io_ptr, &fs);
- if (!ctx->superblock && !(ctx->options & E2F_OPT_PREEN) &&
+ if (!ctx->superblock && (ctx->options & E2F_OPT_PREEN) &&
!(ctx->flags & E2F_FLAG_SB_SPECIFIED) &&
((retval == EXT2_ET_BAD_MAGIC) ||
((retval == 0) && ext2fs_check_desc(fs)))) {


2007-05-08 18:15:06

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH e2fsprogs] Restore backup superblocks in preen mode

On Tue, May 08, 2007 at 06:43:24PM +0100, Daniel Drake wrote:
> The restoration of backup superblocks seems to be reversed in the current
> e2fsprogs:
>
> When running without preen mode, e2fsck searches and locates a backup
> superblock and fixes the primary superblock without any user intervention.
>
> When running in preen mode, e2fsck prints a message describing how the user
> can specify the location of a backup superblock, and exits without doing any
> repair.

That's intentional. If the priumary superblock is wiped out,
something really bad has happened, and usually the first part of the
filesystem is gone too --- possibly including the first part of the
inode table, which would mean the root inode is gone. So we do want
the user running e2fsck by hand.

We could argue about whether or not e2fsck should explicitly ask for
permission before using a backup superblock, and possibly printing the
label and validating the size, etc., before using it --- but we
definitely don't want to just blithly use a backup superblock when in
preen mode.

- Ted

2007-05-08 19:30:15

by Daniel Drake

[permalink] [raw]
Subject: Re: [PATCH e2fsprogs] Restore backup superblocks in preen mode

On Tue, 2007-05-08 at 14:14 -0400, Theodore Tso wrote:
> We could argue about whether or not e2fsck should explicitly ask for
> permission before using a backup superblock, and possibly printing the
> label and validating the size, etc., before using it

In that case, I think it should. At least, that would kill the confusion
where preen mode apparently doesn't want to automate a potentially
dangerous operation, whereas the standard mode works extremely hard to
complete the operation with no user intervention (and doesn't even
require as much info from the user!).

Thanks.
--
Daniel Drake
Brontes Technologies, A 3M Company