Re: [PATCH 2/2 V2] ext4: remove the resize mount option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-11-02, at 10:36 AM, Eric Sandeen wrote:
> The resize mount option seems to be of limited value,
> especially in the age of online resize2fs.  Nuke it.

I agree that it is useless today.  That said, with the new online
resize support that Yongqiang Yang is working on, it would again
be possible to just do "remount -o resize={any larger size}" and
it would work without the need for an ioctl or special user tool.

That might be useful in initrd/appliance kind of environments that
put a premium on userspace tools.  I don't run such an environment,
but I've read many times about distro installs that want to do an
image install to the disk and then resize it.  Maybe in the age of
DVDs and 4GB memory sticks this isn't needed anymore?

I'm not dead set on keeping it, just pointing out that it might
again become useful in the same release that this patch lands in.

Cheers, Andreas

> Documentation/filesystems/ext4.txt |    5 -----
> fs/ext4/super.c                    |   29 ++++++-----------------------
> 2 files changed, 6 insertions(+), 28 deletions(-)
> 
> 
> diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
> index f19cecc..4ea728a 100644
> --- a/Documentation/filesystems/ext4.txt
> +++ b/Documentation/filesystems/ext4.txt
> @@ -362,11 +362,6 @@ nouid32			Disables 32-bit UIDs and GIDs.  This is for
> 			interoperability  with  older kernels which only
> 			store and expect 16-bit values.
> 
> -resize			Allows to resize filesystem to the end of the last
> -			existing block group, further resize has to be done
> -			with resize2fs either online, or offline. It can be
> -			used only with conjunction with remount.
> -
> block_validity		This options allows to enables/disables the in-kernel
> noblock_validity	facility for tracking filesystem metadata blocks
> 			within internal data structures. This allows multi-
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 6a5faac..0f11e99 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -1312,7 +1312,7 @@ enum {
> 	Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
> 	Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
> 	Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
> -	Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version,
> +	Opt_usrquota, Opt_grpquota, Opt_i_version,
> 	Opt_stripe, Opt_delalloc, Opt_nodelalloc, Opt_mblk_io_submit,
> 	Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity,
> 	Opt_inode_readahead_blks, Opt_journal_ioprio,
> @@ -1374,7 +1374,6 @@ static const match_table_t tokens = {
> 	{Opt_nobarrier, "nobarrier"},
> 	{Opt_i_version, "i_version"},
> 	{Opt_stripe, "stripe=%u"},
> -	{Opt_resize, "resize"},
> 	{Opt_delalloc, "delalloc"},
> 	{Opt_nodelalloc, "nodelalloc"},
> 	{Opt_mblk_io_submit, "mblk_io_submit"},
> @@ -1484,7 +1483,7 @@ static int clear_qf_name(struct super_block *sb, int qtype)
> static int parse_options(char *options, struct super_block *sb,
> 			 unsigned long *journal_devnum,
> 			 unsigned int *journal_ioprio,
> -			 ext4_fsblk_t *n_blocks_count, int is_remount)
> +			 int is_remount)
> {
> 	struct ext4_sb_info *sbi = EXT4_SB(sb);
> 	char *p;
> @@ -1761,17 +1760,6 @@ set_qf_format:
> 			break;
> 		case Opt_ignore:
> 			break;
> -		case Opt_resize:
> -			if (!is_remount) {
> -				ext4_msg(sb, KERN_ERR,
> -					"resize option only available "
> -					"for remount");
> -				return 0;
> -			}
> -			if (match_int(&args[0], &option) != 0)
> -				return 0;
> -			*n_blocks_count = option;
> -			break;
> 		case Opt_nobh:
> 			ext4_msg(sb, KERN_WARNING,
> 				 "Ignoring deprecated nobh option");
> @@ -3200,13 +3188,13 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
> 	sbi->s_li_wait_mult = EXT4_DEF_LI_WAIT_MULT;
> 
> 	if (!parse_options((char *) sbi->s_es->s_mount_opts, sb,
> -			   &journal_devnum, &journal_ioprio, NULL, 0)) {
> +			   &journal_devnum, &journal_ioprio, 0)) {
> 		ext4_msg(sb, KERN_WARNING,
> 			 "failed to parse options in superblock: %s",
> 			 sbi->s_es->s_mount_opts);
> 	}
> 	if (!parse_options((char *) data, sb, &journal_devnum,
> -			   &journal_ioprio, NULL, 0))
> +			   &journal_ioprio, 0))
> 		goto failed_mount;
> 
> 	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
> @@ -4285,7 +4273,6 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
> {
> 	struct ext4_super_block *es;
> 	struct ext4_sb_info *sbi = EXT4_SB(sb);
> -	ext4_fsblk_t n_blocks_count = 0;
> 	unsigned long old_sb_flags;
> 	struct ext4_mount_options old_opts;
> 	int enable_quota = 0;
> @@ -4318,8 +4305,7 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
> 	/*
> 	 * Allow the "check" option to be passed as a remount option.
> 	 */
> -	if (!parse_options(data, sb, NULL, &journal_ioprio,
> -			   &n_blocks_count, 1)) {
> +	if (!parse_options(data, sb, NULL, &journal_ioprio, 1)) {
> 		err = -EINVAL;
> 		goto restore_opts;
> 	}
> @@ -4337,8 +4323,7 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
> 		set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
> 	}
> 
> -	if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY) ||
> -		n_blocks_count > ext4_blocks_count(es)) {
> +	if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
> 		if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED) {
> 			err = -EROFS;
> 			goto restore_opts;
> @@ -4413,8 +4398,6 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
> 			if (sbi->s_journal)
> 				ext4_clear_journal_err(sb, es);
> 			sbi->s_mount_state = le16_to_cpu(es->s_state);
> -			if ((err = ext4_group_extend(sb, es, n_blocks_count)))
> -				goto restore_opts;
> 			if (!ext4_setup_super(sb, es, 0))
> 				sb->s_flags &= ~MS_RDONLY;
> 			if (EXT4_HAS_INCOMPAT_FEATURE(sb,

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux