memfd: switch to f_op->{read,write}_iter
authorDaniel Mack <zonque@gmail.com>
Mon, 23 Jun 2014 15:54:59 +0000 (17:54 +0200)
committerDaniel Mack <zonque@gmail.com>
Mon, 23 Jun 2014 15:54:59 +0000 (17:54 +0200)
These functions are new since 3.16 and replace the old aio_{read,write}
implementations.

memfd.c

diff --git a/memfd.c b/memfd.c
index 917d42e24dafca412f948058dc49a2327d937a83..cc271242db23aee3bec7f9e428430b26158698e4 100644 (file)
--- a/memfd.c
+++ b/memfd.c
@@ -194,15 +194,14 @@ exit:
        return ret;
 }
 
-static ssize_t kdbus_memfd_readv(struct kiocb *iocb, const struct iovec *iov,
-                                unsigned long iov_count, loff_t pos)
+static ssize_t kdbus_memfd_read_iter(struct kiocb *iocb, struct iov_iter *iter)
 {
        struct kdbus_memfile *mf = iocb->ki_filp->private_data;
        ssize_t ret;
 
        mutex_lock(&mf->lock);
        iocb->ki_filp = mf->fp;
-       ret = mf->fp->f_op->aio_read(iocb, iov, iov_count, pos);
+       ret = mf->fp->f_op->read_iter(iocb, iter);
        if (ret < 0)
                goto exit;
 
@@ -214,8 +213,7 @@ exit:
        return ret;
 }
 
-static ssize_t kdbus_memfd_writev(struct kiocb *iocb, const struct iovec *iov,
-                                 unsigned long iov_count, loff_t pos)
+static ssize_t kdbus_memfd_write_iter(struct kiocb *iocb, struct iov_iter *iter)
 {
        struct kdbus_memfile *mf = iocb->ki_filp->private_data;
        ssize_t ret;
@@ -229,7 +227,7 @@ static ssize_t kdbus_memfd_writev(struct kiocb *iocb, const struct iovec *iov,
        }
 
        iocb->ki_filp = mf->fp;
-       ret = mf->fp->f_op->aio_write(iocb, iov, iov_count, pos);
+       ret = mf->fp->f_op->write_iter(iocb, iter);
        if (ret < 0)
                goto exit;
 
@@ -387,8 +385,8 @@ exit:
 static const struct file_operations kdbus_memfd_fops = {
        .owner =                THIS_MODULE,
        .release =              kdbus_memfd_release,
-       .aio_read =             kdbus_memfd_readv,
-       .aio_write =            kdbus_memfd_writev,
+       .read_iter =            kdbus_memfd_read_iter,
+       .write_iter =           kdbus_memfd_write_iter,
        .llseek =               kdbus_memfd_llseek,
        .mmap =                 kdbus_memfd_mmap,
        .unlocked_ioctl =       kdbus_memfd_ioctl,