|
@@ -1284,7 +1284,7 @@ enum {
|
|
Opt_noquota, Opt_barrier, Opt_nobarrier, Opt_err,
|
|
Opt_noquota, Opt_barrier, Opt_nobarrier, Opt_err,
|
|
Opt_usrquota, Opt_grpquota, Opt_prjquota, Opt_i_version, Opt_dax,
|
|
Opt_usrquota, Opt_grpquota, Opt_prjquota, Opt_i_version, Opt_dax,
|
|
Opt_stripe, Opt_delalloc, Opt_nodelalloc, Opt_mblk_io_submit,
|
|
Opt_stripe, Opt_delalloc, Opt_nodelalloc, Opt_mblk_io_submit,
|
|
- Opt_lazytime, Opt_nolazytime,
|
|
|
|
|
|
+ Opt_lazytime, Opt_nolazytime, Opt_debug_want_extra_isize,
|
|
Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity,
|
|
Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity,
|
|
Opt_inode_readahead_blks, Opt_journal_ioprio,
|
|
Opt_inode_readahead_blks, Opt_journal_ioprio,
|
|
Opt_dioread_nolock, Opt_dioread_lock,
|
|
Opt_dioread_nolock, Opt_dioread_lock,
|
|
@@ -1352,6 +1352,7 @@ static const match_table_t tokens = {
|
|
{Opt_delalloc, "delalloc"},
|
|
{Opt_delalloc, "delalloc"},
|
|
{Opt_lazytime, "lazytime"},
|
|
{Opt_lazytime, "lazytime"},
|
|
{Opt_nolazytime, "nolazytime"},
|
|
{Opt_nolazytime, "nolazytime"},
|
|
|
|
+ {Opt_debug_want_extra_isize, "debug_want_extra_isize=%u"},
|
|
{Opt_nodelalloc, "nodelalloc"},
|
|
{Opt_nodelalloc, "nodelalloc"},
|
|
{Opt_removed, "mblk_io_submit"},
|
|
{Opt_removed, "mblk_io_submit"},
|
|
{Opt_removed, "nomblk_io_submit"},
|
|
{Opt_removed, "nomblk_io_submit"},
|
|
@@ -1557,6 +1558,7 @@ static const struct mount_opts {
|
|
#endif
|
|
#endif
|
|
{Opt_nouid32, EXT4_MOUNT_NO_UID32, MOPT_SET},
|
|
{Opt_nouid32, EXT4_MOUNT_NO_UID32, MOPT_SET},
|
|
{Opt_debug, EXT4_MOUNT_DEBUG, MOPT_SET},
|
|
{Opt_debug, EXT4_MOUNT_DEBUG, MOPT_SET},
|
|
|
|
+ {Opt_debug_want_extra_isize, 0, MOPT_GTE0},
|
|
{Opt_quota, EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA, MOPT_SET | MOPT_Q},
|
|
{Opt_quota, EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA, MOPT_SET | MOPT_Q},
|
|
{Opt_usrquota, EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA,
|
|
{Opt_usrquota, EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA,
|
|
MOPT_SET | MOPT_Q},
|
|
MOPT_SET | MOPT_Q},
|
|
@@ -1670,6 +1672,8 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
|
|
if (arg == 0)
|
|
if (arg == 0)
|
|
arg = JBD2_DEFAULT_MAX_COMMIT_AGE;
|
|
arg = JBD2_DEFAULT_MAX_COMMIT_AGE;
|
|
sbi->s_commit_interval = HZ * arg;
|
|
sbi->s_commit_interval = HZ * arg;
|
|
|
|
+ } else if (token == Opt_debug_want_extra_isize) {
|
|
|
|
+ sbi->s_want_extra_isize = arg;
|
|
} else if (token == Opt_max_batch_time) {
|
|
} else if (token == Opt_max_batch_time) {
|
|
sbi->s_max_batch_time = arg;
|
|
sbi->s_max_batch_time = arg;
|
|
} else if (token == Opt_min_batch_time) {
|
|
} else if (token == Opt_min_batch_time) {
|
|
@@ -4081,7 +4085,8 @@ no_journal:
|
|
sb->s_flags |= MS_RDONLY;
|
|
sb->s_flags |= MS_RDONLY;
|
|
|
|
|
|
/* determine the minimum size of new large inodes, if present */
|
|
/* determine the minimum size of new large inodes, if present */
|
|
- if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE) {
|
|
|
|
|
|
+ if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE &&
|
|
|
|
+ sbi->s_want_extra_isize == 0) {
|
|
sbi->s_want_extra_isize = sizeof(struct ext4_inode) -
|
|
sbi->s_want_extra_isize = sizeof(struct ext4_inode) -
|
|
EXT4_GOOD_OLD_INODE_SIZE;
|
|
EXT4_GOOD_OLD_INODE_SIZE;
|
|
if (ext4_has_feature_extra_isize(sb)) {
|
|
if (ext4_has_feature_extra_isize(sb)) {
|