lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <EBB78DF0-12A8-45DA-B61C-695E8DE358DB@dilger.ca>
Date:   Thu, 12 Jan 2017 12:19:37 -0700
From:   Andreas Dilger <adilger@...ger.ca>
To:     Theodore Ts'o <tytso@....edu>
Cc:     Ext4 Developers List <linux-ext4@...r.kernel.org>,
        linux@...encehorizons.net
Subject: Re: [PATCH 1/4] ext4: add debug_want_extra_isize mount option

On Jan 11, 2017, at 8:49 PM, Theodore Ts'o <tytso@....edu> wrote:
> 
> 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.

Rather than adding all of the debug hooks as mount options, wouldn't it
make more sense to add tunables via debugfs or as an attr_extra_isize or
similar?

Cheers, Andreas

> Signed-off-by: Theodore Ts'o <tytso@....edu>
> ---
> fs/ext4/super.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 9d15a6293124..829e4a7b59e4 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -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)) {
> --
> 2.11.0.rc0.7.gbe5a750

Cheers, Andreas






Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ