[PATCH 04/37] mke2fs: always warn if 128-byte inode and inline_data

Darrick J. Wong
2014-05-01T23:12:54Z

The combination of 128-byte inodes and inline_data is silly, since
there's no room in the inode table. Unfortunately, if neither
mke2fs.conf nor the mkfs command line options specify an inode size,
the default inode size is set to 128 bytes (by libext2fs) and the
warning isn't printed. Therefore, always do the check-and-warning.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
misc/mke2fs.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index aecd5d5..6507d0d 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -2282,21 +2282,22 @@ profile_error:
blocksize);
exit(1);
}
- /*
- * If inode size is 128 and inline data is enabled, we need
- * to notify users that inline data will never be useful.
- */
- if ((fs_param.s_feature_incompat &
- EXT4_FEATURE_INCOMPAT_INLINE_DATA) &&
- inode_size == EXT2_GOOD_OLD_INODE_SIZE) {
- com_err(program_name, 0,
- _("inode size is %d, inline data is useless"),
- inode_size);
- exit(1);
- }
fs_param.s_inode_size = inode_size;
}

+ /*
+ * If inode size is 128 and inline data is enabled, we need
+ * to notify users that inline data will never be useful.
+ */
+ if ((fs_param.s_feature_incompat &
+ EXT4_FEATURE_INCOMPAT_INLINE_DATA) &&
+ fs_param.s_inode_size == EXT2_GOOD_OLD_INODE_SIZE) {
+ com_err(program_name, 0,
+ _("inode size is %d, inline data is useless"),
+ inode_size);
+ exit(1);
+ }
+
/* Make sure number of inodes specified will fit in 32 bits */
if (num_inodes == 0) {
unsigned long long n;