From: Theodore Ts'o Date: Wed, 27 Feb 2008 23:53:34 +0000 (-0500) Subject: Merge branch 'maint' X-Git-Tag: v1.41-WIP-0427~78 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=a49670e64e28ac3b15e36cb6bd0a8135d3ecdbbb;p=tools%2Fe2fsprogs.git Merge branch 'maint' Conflicts: lib/blkid/devname.c lib/blkid/probe.c misc/mke2fs.c misc/tune2fs.c --- a49670e64e28ac3b15e36cb6bd0a8135d3ecdbbb diff --cc misc/mke2fs.c index a5eb4ee,e16c5f0..d679878 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@@ -901,13 -902,14 +902,16 @@@ static __u32 ok_features[3] = EXT2_FEATURE_COMPAT_RESIZE_INODE | EXT2_FEATURE_COMPAT_DIR_INDEX | EXT2_FEATURE_COMPAT_LAZY_BG | - EXT2_FEATURE_COMPAT_EXT_ATTR, /* Compat */ - EXT2_FEATURE_INCOMPAT_FILETYPE| /* Incompat */ + EXT2_FEATURE_COMPAT_EXT_ATTR, + /* Incompat */ + EXT2_FEATURE_INCOMPAT_FILETYPE| + EXT3_FEATURE_INCOMPAT_EXTENTS| EXT3_FEATURE_INCOMPAT_JOURNAL_DEV| - EXT2_FEATURE_INCOMPAT_META_BG, + EXT2_FEATURE_INCOMPAT_META_BG| + EXT4_FEATURE_INCOMPAT_FLEX_BG, - EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER /* R/O compat */ + /* R/O compat */ + EXT2_FEATURE_RO_COMPAT_LARGE_FILE| + EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER }; diff --cc misc/tune2fs.c index d63148b,184b5d6..fae5875 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@@ -108,12 -108,26 +108,29 @@@ static void usage(void } static __u32 ok_features[3] = { + /* Compat */ EXT3_FEATURE_COMPAT_HAS_JOURNAL | - EXT2_FEATURE_COMPAT_DIR_INDEX, /* Compat */ - EXT2_FEATURE_INCOMPAT_FILETYPE| /* Incompat */ - EXT3_FEATURE_INCOMPAT_EXTENTS| + EXT2_FEATURE_COMPAT_DIR_INDEX, + /* Incompat */ - EXT2_FEATURE_INCOMPAT_FILETYPE, ++ EXT2_FEATURE_INCOMPAT_FILETYPE | ++ EXT3_FEATURE_INCOMPAT_EXTENTS | + EXT4_FEATURE_INCOMPAT_FLEX_BG, - EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER /* R/O compat */ + /* R/O compat */ + EXT2_FEATURE_RO_COMPAT_LARGE_FILE | + EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER + }; + + static __u32 clear_ok_features[3] = { + /* Compat */ + EXT3_FEATURE_COMPAT_HAS_JOURNAL | + EXT2_FEATURE_COMPAT_RESIZE_INODE | + EXT2_FEATURE_COMPAT_DIR_INDEX, + /* Incompat */ - EXT2_FEATURE_INCOMPAT_FILETYPE, ++ EXT2_FEATURE_INCOMPAT_FILETYPE | ++ EXT4_FEATURE_INCOMPAT_FLEX_BG, + /* R/O compat */ + EXT2_FEATURE_RO_COMPAT_LARGE_FILE | + EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER }; /* @@@ -382,15 -389,7 +393,16 @@@ static void update_feature_set(ext2_fil if (uuid_is_null((unsigned char *) sb->s_hash_seed)) uuid_generate((unsigned char *) sb->s_hash_seed); } - if (!flex_bg && old_flex_bg) { + ++ if (FEATURE_OFF(E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_FLEX_BG)) { + if (ext2fs_check_desc(fs)) { + fputs(_("Clearing the flex_bg flag would " + "cause the the filesystem to be\n" + "inconsistent.\n"), stderr); + exit(1); + } + } + if (sb->s_rev_level == EXT2_GOOD_OLD_REV && (sb->s_feature_compat || sb->s_feature_ro_compat || sb->s_feature_incompat))