All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: Jan Kara <jack@suse.cz>
Cc: Ted Tso <tytso@mit.edu>, linux-ext4@vger.kernel.org
Subject: Re: [PATCH] ext4: Check dioread_nolock on remount
Date: Mon, 17 Dec 2012 09:43:12 -0600	[thread overview]
Message-ID: <50CF3D90.60408@redhat.com> (raw)
In-Reply-To: <1355434842-13478-1-git-send-email-jack@suse.cz>

On 12/13/12 3:40 PM, Jan Kara wrote:
> Currently we allow enabling dioread_nolock mount option on remount for
> filesystems where blocksize < PAGE_CACHE_SIZE. This isn't really supported so
> fix the bug by moving the check for blocksize != PAGE_CACHE_SIZE into
> parse_options(). Change the original PAGE_SIZE to PAGE_CACHE_SIZE along the way
> because that's what we are really interested in.
> 
> Signed-off-by: Jan Kara <jack@suse.cz>

Looks good to me,

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

> ---
>  fs/ext4/super.c |   22 +++++++++++-----------
>  1 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 80928f7..9753ed2 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -1650,9 +1650,7 @@ static int parse_options(char *options, struct super_block *sb,
>  			 unsigned int *journal_ioprio,
>  			 int is_remount)
>  {
> -#ifdef CONFIG_QUOTA
>  	struct ext4_sb_info *sbi = EXT4_SB(sb);
> -#endif
>  	char *p;
>  	substring_t args[MAX_OPT_ARGS];
>  	int token;
> @@ -1701,6 +1699,16 @@ static int parse_options(char *options, struct super_block *sb,
>  		}
>  	}
>  #endif
> +	if (test_opt(sb, DIOREAD_NOLOCK)) {
> +		int blocksize =
> +			BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
> +
> +		if (blocksize < PAGE_CACHE_SIZE) {
> +			ext4_msg(sb, KERN_ERR, "can't mount with "
> +				 "dioread_nolock if block size != PAGE_SIZE");
> +			return 0;
> +		}
> +	}
>  	return 1;
>  }
>  
> @@ -3446,15 +3454,6 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
>  			clear_opt(sb, DELALLOC);
>  	}
>  
> -	blocksize = BLOCK_SIZE << le32_to_cpu(es->s_log_block_size);
> -	if (test_opt(sb, DIOREAD_NOLOCK)) {
> -		if (blocksize < PAGE_SIZE) {
> -			ext4_msg(sb, KERN_ERR, "can't mount with "
> -				 "dioread_nolock if block size != PAGE_SIZE");
> -			goto failed_mount;
> -		}
> -	}
> -
>  	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
>  		(test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
>  
> @@ -3496,6 +3495,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
>  	if (!ext4_feature_set_ok(sb, (sb->s_flags & MS_RDONLY)))
>  		goto failed_mount;
>  
> +	blocksize = BLOCK_SIZE << le32_to_cpu(es->s_log_block_size);
>  	if (blocksize < EXT4_MIN_BLOCK_SIZE ||
>  	    blocksize > EXT4_MAX_BLOCK_SIZE) {
>  		ext4_msg(sb, KERN_ERR,
> 


  reply	other threads:[~2012-12-17 15:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-13 21:40 [PATCH] ext4: Check dioread_nolock on remount Jan Kara
2012-12-17 15:43 ` Eric Sandeen [this message]
2012-12-20  5:07 ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50CF3D90.60408@redhat.com \
    --to=sandeen@redhat.com \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.