Disallow tune2fs command to set inode size larger than block size to ext3 and ext4 (^flex_bg). Without this patch, tune2fs makes FS unmountable. Steps to reproduce: 1.Create ext4 without flex_bg (or just create ext3) # mke2fs -t ext4 -O ^flex_bg DEV 2.Set inode size larger than block size # tune2fs -I 8192 DEV 3. We failed to mount FS # mount DEV MP mount: wrong fs type, bad option, bad superblock on /dev/sda7, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so Signed-off-by: Akira Fujita <a-fujita@xxxxxxxxxxxxx> --- misc/tune2fs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/misc/tune2fs.c b/misc/tune2fs.c index c1ecae8..17e5335 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -2370,6 +2370,14 @@ retry_open: rc = 1; goto closefs; } + if ((new_inode_size > fs->blocksize) && + !(fs->super->s_feature_incompat & + EXT4_FEATURE_INCOMPAT_FLEX_BG)) { + fprintf(stderr, _("Invalid inode size %lu (max %d)\n"), + new_inode_size, fs->blocksize); + rc = 1; + goto closefs; + } /* * If inode resize is requested use the -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html