]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
e2fsck: ignore differing NEEDS_RECOVERY flag on backup sbs
authorEric Sandeen <sandeen@redhat.com>
Sat, 22 Nov 2008 15:02:48 +0000 (09:02 -0600)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 7 Apr 2009 17:20:53 +0000 (13:20 -0400)
When we resize online, the primary superblock gets copied to all
the backups, and of course since we're mounted the NEEDS_RECOVERY
flag is set.  A subsequent fsck will find the backups have the
NEEDS_RECOVERY flag set while the primary does not, and this
forces a full fsck pass.

I think this flag can be safely ignored in the flag comparisons.

Addresses-Red-Hat-Bugzilla: #471925

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
e2fsck/super.c

index 24ec7a8f2f463196498459bc240771457b2bac6e..2d50ad557f1320ff77bc891f89a9de26a88a9c65 100644 (file)
@@ -864,7 +864,8 @@ void check_super_block(e2fsck_t ctx)
  * try to discourage it in the future.  In particular, for the newer
  * ext4 files, especially EXT4_FEATURE_RO_COMPAT_DIR_NLINK and
  * EXT3_FEATURE_INCOMPAT_EXTENTS.  So some of these may go away in the
- * future.
+ * future.  EXT3_FEATURE_INCOMPAT_RECOVER may also get set when
+ * copying the primary superblock during online resize.
  *
  * The kernel will set EXT2_FEATURE_COMPAT_EXT_ATTR, but
  * unfortunately, we shouldn't ignore it since if it's not set in the
@@ -873,7 +874,8 @@ void check_super_block(e2fsck_t ctx)
  */
 #define FEATURE_RO_COMPAT_IGNORE       (EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
                                         EXT4_FEATURE_RO_COMPAT_DIR_NLINK)
-#define FEATURE_INCOMPAT_IGNORE                (EXT3_FEATURE_INCOMPAT_EXTENTS)
+#define FEATURE_INCOMPAT_IGNORE                (EXT3_FEATURE_INCOMPAT_EXTENTS| \
+                                        EXT3_FEATURE_INCOMPAT_RECOVER)
 
 int check_backup_super_block(e2fsck_t ctx)
 {