2008-01-30 04:11:16 +00:00
|
|
|
Index: e2fsprogs-1.40.5/e2fsck/super.c
|
2008-01-23 20:43:41 +00:00
|
|
|
===================================================================
|
2008-01-30 04:11:16 +00:00
|
|
|
--- e2fsprogs-1.40.5.orig/e2fsck/super.c
|
|
|
|
+++ e2fsprogs-1.40.5/e2fsck/super.c
|
|
|
|
@@ -793,7 +793,11 @@ void check_super_block(e2fsck_t ctx)
|
|
|
|
* unfortunately, we shouldn't ignore it since if it's not set in the
|
|
|
|
* backup, the extended attributes in the filesystem will be stripped
|
|
|
|
* away.
|
|
|
|
+ *
|
|
|
|
+ * Well, I'm still going that route for now, 'til I do something
|
|
|
|
+ * better. Full-fsck after a fresh install is just no good. -ERS
|
|
|
|
*/
|
|
|
|
+#define FEATURE_COMPAT_IGNORE (EXT2_FEATURE_COMPAT_EXT_ATTR)
|
|
|
|
#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)
|
|
|
|
@@ -837,6 +841,9 @@ int check_backup_super_block(e2fsck_t ct
|
2008-01-23 20:43:41 +00:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
+#define SUPER_COMPAT_DIFFERENT(x) \
|
2008-01-24 22:54:08 +00:00
|
|
|
+ (( fs->super->x & ~FEATURE_COMPAT_IGNORE) != \
|
|
|
|
+ (tfs->super->x & ~FEATURE_COMPAT_IGNORE))
|
2008-01-30 04:11:16 +00:00
|
|
|
#define SUPER_INCOMPAT_DIFFERENT(x) \
|
|
|
|
(( fs->super->x & ~FEATURE_INCOMPAT_IGNORE) != \
|
|
|
|
(tfs->super->x & ~FEATURE_INCOMPAT_IGNORE))
|
|
|
|
@@ -846,7 +853,7 @@ int check_backup_super_block(e2fsck_t ct
|
|
|
|
#define SUPER_DIFFERENT(x) \
|
|
|
|
(fs->super->x != tfs->super->x)
|
|
|
|
|
|
|
|
- if (SUPER_DIFFERENT(s_feature_compat) ||
|
2008-01-23 20:43:41 +00:00
|
|
|
+ if (SUPER_COMPAT_DIFFERENT(s_feature_compat) ||
|
2008-01-30 04:11:16 +00:00
|
|
|
SUPER_INCOMPAT_DIFFERENT(s_feature_incompat) ||
|
|
|
|
SUPER_RO_COMPAT_DIFFERENT(s_feature_ro_compat) ||
|
2008-01-23 20:43:41 +00:00
|
|
|
SUPER_DIFFERENT(s_blocks_count) ||
|