From: Andreas Dilger Date: Fri, 13 Apr 2012 18:25:25 +0000 (-0600) Subject: e2fsck: ignore xattr feature in backup superblocks X-Git-Tag: v1.42.7.wc1~21 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=123d37a79bc63945009237739aba37e23a10374c;p=tools%2Fe2fsprogs.git e2fsck: ignore xattr feature in backup superblocks Since the xattr feature is enabled automatically by the kernel, it can cause spurious e2fsck runs on a clean filesystem due to differences between the primary and backup superblocks. Signed-off-by: Eric Sandeen Signed-off-by: Andreas Dilger --- diff --git a/e2fsck/super.c b/e2fsck/super.c index b9870f7..45b4c54 100644 --- a/e2fsck/super.c +++ b/e2fsck/super.c @@ -881,7 +881,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| \ @@ -932,6 +936,9 @@ int check_backup_super_block(e2fsck_t ctx) (EXT2_INODE_SIZE(backup_sb) < EXT2_GOOD_OLD_INODE_SIZE)) continue; +#define SUPER_COMPAT_DIFFERENT(x) \ + ((fs->super->x & ~FEATURE_COMPAT_IGNORE) != \ + (backup_sb->x & ~FEATURE_COMPAT_IGNORE)) #define SUPER_INCOMPAT_DIFFERENT(x) \ ((fs->super->x & ~FEATURE_INCOMPAT_IGNORE) != \ (backup_sb->x & ~FEATURE_INCOMPAT_IGNORE)) @@ -941,7 +948,7 @@ int check_backup_super_block(e2fsck_t ctx) #define SUPER_DIFFERENT(x) \ (fs->super->x != backup_sb->x) - if (SUPER_DIFFERENT(s_feature_compat) || + if (SUPER_COMPAT_DIFFERENT(s_feature_compat) || SUPER_INCOMPAT_DIFFERENT(s_feature_incompat) || SUPER_RO_COMPAT_DIFFERENT(s_feature_ro_compat) || SUPER_DIFFERENT(s_blocks_count) ||