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" <darrick.wong@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Theodore Ts'o 2013-10-17 21:49:16 -07:00
parent d36e027f9c
commit cecfb4c042

View File

@ -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 "