ext4: add debug_want_extra_isize mount option
In order to test the inode extra isize expansion code, it is useful to be able to easily create file systems that have inodes with extra isize values smaller than the current desired value. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
03e916fa8b
commit
670e9875eb
|
@ -1284,7 +1284,7 @@ enum {
|
|||
Opt_noquota, Opt_barrier, Opt_nobarrier, Opt_err,
|
||||
Opt_usrquota, Opt_grpquota, Opt_prjquota, Opt_i_version, Opt_dax,
|
||||
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_inode_readahead_blks, Opt_journal_ioprio,
|
||||
Opt_dioread_nolock, Opt_dioread_lock,
|
||||
|
@ -1352,6 +1352,7 @@ static const match_table_t tokens = {
|
|||
{Opt_delalloc, "delalloc"},
|
||||
{Opt_lazytime, "lazytime"},
|
||||
{Opt_nolazytime, "nolazytime"},
|
||||
{Opt_debug_want_extra_isize, "debug_want_extra_isize=%u"},
|
||||
{Opt_nodelalloc, "nodelalloc"},
|
||||
{Opt_removed, "mblk_io_submit"},
|
||||
{Opt_removed, "nomblk_io_submit"},
|
||||
|
@ -1557,6 +1558,7 @@ static const struct mount_opts {
|
|||
#endif
|
||||
{Opt_nouid32, EXT4_MOUNT_NO_UID32, 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_usrquota, EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA,
|
||||
MOPT_SET | MOPT_Q},
|
||||
|
@ -1670,6 +1672,8 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
|
|||
if (arg == 0)
|
||||
arg = JBD2_DEFAULT_MAX_COMMIT_AGE;
|
||||
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) {
|
||||
sbi->s_max_batch_time = arg;
|
||||
} else if (token == Opt_min_batch_time) {
|
||||
|
@ -4081,7 +4085,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|||
sb->s_flags |= MS_RDONLY;
|
||||
|
||||
/* 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) -
|
||||
EXT4_GOOD_OLD_INODE_SIZE;
|
||||
if (ext4_has_feature_extra_isize(sb)) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user