@@ -1284,7 +1284,7 @@ enum {
12841284 Opt_noquota , Opt_barrier , Opt_nobarrier , Opt_err ,
12851285 Opt_usrquota , Opt_grpquota , Opt_prjquota , Opt_i_version , Opt_dax ,
12861286 Opt_stripe , Opt_delalloc , Opt_nodelalloc , Opt_mblk_io_submit ,
1287- Opt_lazytime , Opt_nolazytime ,
1287+ Opt_lazytime , Opt_nolazytime , Opt_debug_want_extra_isize ,
12881288 Opt_nomblk_io_submit , Opt_block_validity , Opt_noblock_validity ,
12891289 Opt_inode_readahead_blks , Opt_journal_ioprio ,
12901290 Opt_dioread_nolock , Opt_dioread_lock ,
@@ -1352,6 +1352,7 @@ static const match_table_t tokens = {
13521352 {Opt_delalloc , "delalloc" },
13531353 {Opt_lazytime , "lazytime" },
13541354 {Opt_nolazytime , "nolazytime" },
1355+ {Opt_debug_want_extra_isize , "debug_want_extra_isize=%u" },
13551356 {Opt_nodelalloc , "nodelalloc" },
13561357 {Opt_removed , "mblk_io_submit" },
13571358 {Opt_removed , "nomblk_io_submit" },
@@ -1557,6 +1558,7 @@ static const struct mount_opts {
15571558#endif
15581559 {Opt_nouid32 , EXT4_MOUNT_NO_UID32 , MOPT_SET },
15591560 {Opt_debug , EXT4_MOUNT_DEBUG , MOPT_SET },
1561+ {Opt_debug_want_extra_isize , 0 , MOPT_GTE0 },
15601562 {Opt_quota , EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA , MOPT_SET | MOPT_Q },
15611563 {Opt_usrquota , EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA ,
15621564 MOPT_SET | MOPT_Q },
@@ -1670,6 +1672,8 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
16701672 if (arg == 0 )
16711673 arg = JBD2_DEFAULT_MAX_COMMIT_AGE ;
16721674 sbi -> s_commit_interval = HZ * arg ;
1675+ } else if (token == Opt_debug_want_extra_isize ) {
1676+ sbi -> s_want_extra_isize = arg ;
16731677 } else if (token == Opt_max_batch_time ) {
16741678 sbi -> s_max_batch_time = arg ;
16751679 } else if (token == Opt_min_batch_time ) {
@@ -4081,7 +4085,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
40814085 sb -> s_flags |= MS_RDONLY ;
40824086
40834087 /* determine the minimum size of new large inodes, if present */
4084- if (sbi -> s_inode_size > EXT4_GOOD_OLD_INODE_SIZE ) {
4088+ if (sbi -> s_inode_size > EXT4_GOOD_OLD_INODE_SIZE &&
4089+ sbi -> s_want_extra_isize == 0 ) {
40854090 sbi -> s_want_extra_isize = sizeof (struct ext4_inode ) -
40864091 EXT4_GOOD_OLD_INODE_SIZE ;
40874092 if (ext4_has_feature_extra_isize (sb )) {
0 commit comments