740dfcb
Index: e2fsprogs-1.41.5/e2fsck/super.c
dba7ad2
===================================================================
740dfcb
--- e2fsprogs-1.41.5.orig/e2fsck/super.c
740dfcb
+++ e2fsprogs-1.41.5/e2fsck/super.c
740dfcb
@@ -869,7 +869,11 @@ void check_super_block(e2fsck_t ctx)
2daa78d
  * unfortunately, we shouldn't ignore it since if it's not set in the
2daa78d
  * backup, the extended attributes in the filesystem will be stripped
2daa78d
  * away.
2daa78d
+ *
2daa78d
+ * Well, I'm still going that route for now, 'til I do something
2daa78d
+ * better.  Full-fsck after a fresh install is just no good.  -ERS
2daa78d
  */
2daa78d
+#define FEATURE_COMPAT_IGNORE          (EXT2_FEATURE_COMPAT_EXT_ATTR)
2daa78d
 #define FEATURE_RO_COMPAT_IGNORE	(EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
2daa78d
 					 EXT4_FEATURE_RO_COMPAT_DIR_NLINK)
740dfcb
 #define FEATURE_INCOMPAT_IGNORE		(EXT3_FEATURE_INCOMPAT_EXTENTS| \
740dfcb
@@ -921,6 +925,9 @@ int check_backup_super_block(e2fsck_t ct
740dfcb
 		    (EXT2_INODE_SIZE(backup_sb) < EXT2_GOOD_OLD_INODE_SIZE))
dba7ad2
 			continue;
dba7ad2
 
dba7ad2
+#define SUPER_COMPAT_DIFFERENT(x)	\
740dfcb
+	((fs->super->x & ~FEATURE_COMPAT_IGNORE) !=	\
740dfcb
+	 (backup_sb->x & ~FEATURE_COMPAT_IGNORE))
2daa78d
 #define SUPER_INCOMPAT_DIFFERENT(x)	\
740dfcb
 	((fs->super->x & ~FEATURE_INCOMPAT_IGNORE) !=	\
740dfcb
 	 (backup_sb->x & ~FEATURE_INCOMPAT_IGNORE))
740dfcb
@@ -930,7 +937,7 @@ int check_backup_super_block(e2fsck_t ct
2daa78d
 #define SUPER_DIFFERENT(x)		\
740dfcb
 	(fs->super->x != backup_sb->x)
2daa78d
 
2daa78d
-		if (SUPER_DIFFERENT(s_feature_compat) ||
dba7ad2
+		if (SUPER_COMPAT_DIFFERENT(s_feature_compat) ||
2daa78d
 		    SUPER_INCOMPAT_DIFFERENT(s_feature_incompat) ||
2daa78d
 		    SUPER_RO_COMPAT_DIFFERENT(s_feature_ro_compat) ||
dba7ad2
 		    SUPER_DIFFERENT(s_blocks_count) ||