linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
	Jeff Layton <jlayton@poochiereds.net>,
	linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 06/10] fs: set kernel address limit in do_loop_readv_writev
Date: Sat, 27 May 2017 10:19:44 +0200	[thread overview]
Message-ID: <20170527081944.GA31189@lst.de> (raw)
In-Reply-To: <20170527081654.15957-7-hch@lst.de>

Arg.  This patch has been NAKed by Al, but got stuck in the series.
It's not actually needed by the latter patches and can be discarded.

On Sat, May 27, 2017 at 11:16:50AM +0300, Christoph Hellwig wrote:
> This will allow to use all iov_iter based read/write for ITER_KVEC
> without having to check if the file has the iter version of the
> read/write ops, which will allow us to get rid of a large number
> of get_fs/set_fs calls in drivers.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  fs/read_write.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/fs/read_write.c b/fs/read_write.c
> index 64b61a032a56..60c64a996ab2 100644
> --- a/fs/read_write.c
> +++ b/fs/read_write.c
> @@ -704,9 +704,18 @@ static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter,
>  		loff_t *ppos, int type, int flags)
>  {
>  	ssize_t ret = 0;
> +	mm_segment_t uninitialized_var(old_fs);
>  
>  	if (flags & ~RWF_HIPRI)
>  		return -EOPNOTSUPP;
> +	if (iter->type & (ITER_BVEC | ITER_PIPE))
> +		return -EOPNOTSUPP;
> +
> +	/* adjust the address limit for in-kernel I/O */
> +	if (iter->type & ITER_KVEC) {
> +		old_fs = get_fs();
> +		set_fs(get_ds());
> +	}
>  
>  	while (iov_iter_count(iter)) {
>  		struct iovec iovec = iov_iter_iovec(iter);
> @@ -731,6 +740,8 @@ static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter,
>  		iov_iter_advance(iter, nr);
>  	}
>  
> +	if (iter->type & ITER_KVEC)
> +		set_fs(old_fs);
>  	return ret;
>  }
>  
> -- 
> 2.11.0
---end quoted text---

  reply	other threads:[~2017-05-27  8:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-27  8:16 clean up readv/writev helpers Christoph Hellwig
2017-05-27  8:16 ` [PATCH 01/10] fs: pass on flags in compat_writev Christoph Hellwig
2017-05-27  8:16 ` [PATCH 02/10] fs: remove do_readv_writev Christoph Hellwig
2017-05-27  8:16 ` [PATCH 03/10] fs: remove do_compat_readv_writev Christoph Hellwig
2017-05-27  8:16 ` [PATCH 04/10] fs: remove __do_readv_writev Christoph Hellwig
2017-05-27  8:16 ` [PATCH 05/10] fs: move more code into do_iter_read/do_iter_write Christoph Hellwig
2017-05-27  8:16 ` [PATCH 06/10] fs: set kernel address limit in do_loop_readv_writev Christoph Hellwig
2017-05-27  8:19   ` Christoph Hellwig [this message]
2017-05-27  8:16 ` [PATCH 07/10] fs: implement vfs_iter_read using do_iter_read Christoph Hellwig
2017-05-27  8:16 ` [PATCH 08/10] fs: implement vfs_iter_write using do_iter_write Christoph Hellwig
2017-05-27  8:16 ` [PATCH 09/10] nfsd: use vfs_iter_read/write Christoph Hellwig
2017-05-30 18:02   ` J. Bruce Fields
2017-05-27  8:16 ` [PATCH 10/10] nfsd: remove nfsd_vfs_read Christoph Hellwig
2017-05-30 18:03   ` J. Bruce Fields
2017-05-27 19:32 ` clean up readv/writev helpers Al Viro
2017-06-28 14:35   ` Christoph Hellwig
2017-06-28 16:37     ` Al Viro

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=20170527081944.GA31189@lst.de \
    --to=hch@lst.de \
    --cc=bfields@fieldses.org \
    --cc=jlayton@poochiereds.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).