On Mon 27-08-12 14:30:40, Eric Sandeen wrote: > When we have a filesystem with an orphan inode list *and* in error > state, things behave differently if: > > 1) e2fsck -p is done prior to mount: e2fsck fixes things and exits > happily (barring other significant problems) > > vs. > > 2) mount is done first, then e2fsck -p: due to the orphan inode > list removal, more errors are found and e2fsck exits with > UNEXPECTED INCONSISTENCY. > > The 2nd case above, on the root filesystem, has the tendency to halt > the boot process, which is unfortunate. > > The situation can be improved by not clearing the orphan > inode list when the fs is mounted readonly. Yeah, makes sense. I've added the patch to my tree. Thanks. Honza > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > diff --git a/fs/ext3/super.c b/fs/ext3/super.c > index ff9bcdc..485b4fa 100644 > --- a/fs/ext3/super.c > +++ b/fs/ext3/super.c > @@ -1490,10 +1490,12 @@ static void ext3_orphan_cleanup (struct super_block * sb, > } > > if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { > - if (es->s_last_orphan) > + /* don't clear list on RO mount w/ errors */ > + if (es->s_last_orphan && !(s_flags & MS_RDONLY)) { > jbd_debug(1, "Errors on filesystem, " > "clearing orphan list.\n"); > - es->s_last_orphan = 0; > + es->s_last_orphan = 0; > + } > jbd_debug(1, "Skipping orphan recovery on fs with errors.\n"); > return; > } > -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html