From: Theodore Ts'o Date: Fri, 18 Oct 2013 04:49:16 +0000 (-0700) Subject: mke2fs: don't let resize= turn on resize_inode when meta_bg is set X-Git-Tag: v1.42.9~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cecfb4c04227dd5803c24b311d92a80e91b7b380;p=thirdparty%2Fe2fsprogs.git mke2fs: don't let resize= turn on resize_inode when meta_bg is set Passing the "-E resize=NNN" option to mke2fs sets the resize_inode feature. However, resize_inode and meta_bg are mutually exclusive; unfortunately, we check this constraint before we parse the extended options. Fix this by moving this check after the calls parse_extended_opts(). Reported-by: "Darrick J. Wong" Signed-off-by: "Theodore Ts'o" --- diff --git a/misc/mke2fs.c b/misc/mke2fs.c index cc06a97ed..64d923a77 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -1797,15 +1797,6 @@ profile_error: fs_param.s_feature_ro_compat = 0; } - if ((fs_param.s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) && - (fs_param.s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) { - fprintf(stderr, _("The resize_inode and meta_bg features " - "are not compatible.\n" - "They can not be both enabled " - "simultaneously.\n")); - exit(1); - } - /* Check the user's mkfs options for 64bit */ if ((fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) && !(fs_param.s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS)) { @@ -1978,6 +1969,15 @@ profile_error: exit(1); } + if ((fs_param.s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) && + (fs_param.s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) { + fprintf(stderr, _("The resize_inode and meta_bg features " + "are not compatible.\n" + "They can not be both enabled " + "simultaneously.\n")); + exit(1); + } + if (!quiet && (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC)) fprintf(stderr, _("\nWarning: the bigalloc feature is still "