linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Kleikamp <dave.kleikamp@oracle.com>
To: Zach Brown <zab@zabbo.net>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	Asias He <asias@redhat.com>,
	Dave Kleikamp <dave.kleikamp@oracle.com>
Subject: [PATCH V7 -next 26/33] block_dev: add support for read_iter, write_iter
Date: Fri,  8 Mar 2013 16:52:21 -0600	[thread overview]
Message-ID: <1362783148-22736-27-git-send-email-dave.kleikamp@oracle.com> (raw)
In-Reply-To: <1362783148-22736-1-git-send-email-dave.kleikamp@oracle.com>

From: Asias He <asias@redhat.com>

Signed-off-by: Asias He <asias@redhat.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
---
 drivers/char/raw.c |  4 ++--
 fs/block_dev.c     | 19 +++++++++----------
 include/linux/fs.h |  4 ++--
 3 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/drivers/char/raw.c b/drivers/char/raw.c
index f3223aa..db5fa4e 100644
--- a/drivers/char/raw.c
+++ b/drivers/char/raw.c
@@ -285,9 +285,9 @@ static long raw_ctl_compat_ioctl(struct file *file, unsigned int cmd,
 
 static const struct file_operations raw_fops = {
 	.read		= do_sync_read,
-	.aio_read	= generic_file_aio_read,
+	.read_iter	= generic_file_read_iter,
 	.write		= do_sync_write,
-	.aio_write	= blkdev_aio_write,
+	.write_iter	= blkdev_write_iter,
 	.fsync		= blkdev_fsync,
 	.open		= raw_open,
 	.release	= raw_release,
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 0d71c44..44edaf7 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1523,8 +1523,7 @@ static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
  * Does not take i_mutex for the write and thus is not for general purpose
  * use.
  */
-ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
-			 unsigned long nr_segs, loff_t pos)
+ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
 {
 	struct file *file = iocb->ki_filp;
 	struct blk_plug plug;
@@ -1533,7 +1532,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
 	BUG_ON(iocb->ki_pos != pos);
 
 	blk_start_plug(&plug);
-	ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
+	ret = __generic_file_write_iter(iocb, iter, &iocb->ki_pos);
 	if (ret > 0 || ret == -EIOCBQUEUED) {
 		ssize_t err;
 
@@ -1544,10 +1543,10 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
 	blk_finish_plug(&plug);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(blkdev_aio_write);
+EXPORT_SYMBOL_GPL(blkdev_write_iter);
 
-static ssize_t blkdev_aio_read(struct kiocb *iocb, const struct iovec *iov,
-			 unsigned long nr_segs, loff_t pos)
+static ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *iter,
+			 loff_t pos)
 {
 	struct file *file = iocb->ki_filp;
 	struct inode *bd_inode = file->f_mapping->host;
@@ -1558,8 +1557,8 @@ static ssize_t blkdev_aio_read(struct kiocb *iocb, const struct iovec *iov,
 
 	size -= pos;
 	if (size < INT_MAX)
-		nr_segs = iov_shorten((struct iovec *)iov, nr_segs, size);
-	return generic_file_aio_read(iocb, iov, nr_segs, pos);
+		iov_iter_shorten(iter, size);
+	return generic_file_read_iter(iocb, iter, pos);
 }
 
 /*
@@ -1592,8 +1591,8 @@ const struct file_operations def_blk_fops = {
 	.llseek		= block_llseek,
 	.read		= do_sync_read,
 	.write		= do_sync_write,
-	.aio_read	= blkdev_aio_read,
-	.aio_write	= blkdev_aio_write,
+	.read_iter	= blkdev_read_iter,
+	.write_iter	= blkdev_write_iter,
 	.mmap		= generic_file_mmap,
 	.fsync		= blkdev_fsync,
 	.unlocked_ioctl	= block_ioctl,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 73fb7a7..a8dc250 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2509,8 +2509,8 @@ extern int generic_segment_checks(const struct iovec *iov,
 		unsigned long *nr_segs, size_t *count, int access_flags);
 
 /* fs/block_dev.c */
-extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
-				unsigned long nr_segs, loff_t pos);
+extern ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *iter,
+				 loff_t pos);
 extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end,
 			int datasync);
 extern void block_sync_page(struct page *page);
-- 
1.8.1.5

  parent reply	other threads:[~2013-03-08 22:52 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-08 22:51 [PATCH V7 -next 00/33] loop: Issue O_DIRECT aio using bio_vec Dave Kleikamp
2013-03-08 22:51 ` [PATCH V7 -next 01/33] iov_iter: move into its own file Dave Kleikamp
2013-03-08 22:51 ` [PATCH V7 -next 02/33] iov_iter: iov_iter_copy_from_user() should use non-atomic copy Dave Kleikamp
2013-03-08 22:51 ` [PATCH V7 -next 03/33] iov_iter: add copy_to_user support Dave Kleikamp
2013-03-08 22:51 ` [PATCH V7 -next 04/33] iov_iter: add __iovec_copy_to_user() Dave Kleikamp
     [not found] ` <1362783148-22736-1-git-send-email-dave.kleikamp-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-08 22:52   ` [PATCH V7 -next 05/33] fuse: convert fuse to use iov_iter_copy_[to|from]_user Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 06/33] iov_iter: hide iovec details behind ops function pointers Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 07/33] iov_iter: ii_iovec_copy_to_user should pre-fault user pages Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 08/33] iov_iter: add bvec support Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 09/33] iov_iter: add a shorten call Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 10/33] iov_iter: let callers extract iovecs and bio_vecs Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 11/33] dio: Convert direct_IO to use iov_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 12/33] dio: add bio_vec support to __blockdev_direct_IO() Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 13/33] fs: pull iov_iter use higher up the stack Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 14/33] aio: add aio_kernel_() interface Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 15/33] aio: add aio support for iov_iter arguments Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 16/33] bio: add bvec_length(), like iov_length() Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 17/33] loop: use aio to perform io on the underlying file Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 18/33] fs: create file_readable() and file_writable() functions Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 19/33] fs: use read_iter and write_iter rather than aio_read and aio_write Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 20/33] fs: add read_iter and write_iter to several file systems Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 21/33] ocfs2: add support for read_iter, write_iter, and direct_IO_bvec Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 22/33] ext4: add support for read_iter and write_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 23/33] nfs: add support for read_iter, write_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 24/33] nfs: simplify swap Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 25/33] btrfs: add support for read_iter and write_iter Dave Kleikamp
2013-03-08 22:52 ` Dave Kleikamp [this message]
2013-03-08 22:52 ` [PATCH V7 -next 27/33] xfs: " Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 28/33] gfs2: Convert aio_read/write ops to read/write_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 29/33] udf: convert file ops from aio_read/write " Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 30/33] afs: add support for read_iter and write_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 31/33] ecrpytfs: Convert aio_read/write ops to read/write_iter Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 32/33] ubifs: convert file ops from aio_read/write " Dave Kleikamp
2013-03-08 22:52 ` [PATCH V7 -next 33/33] tmpfs: add support for read_iter and write_iter Dave Kleikamp

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=1362783148-22736-27-git-send-email-dave.kleikamp@oracle.com \
    --to=dave.kleikamp@oracle.com \
    --cc=asias@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zab@zabbo.net \
    /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).