Wrapfs: remove aio_read/write ops
authorErez Zadok <ezk@cs.sunysb.edu>
Sat, 5 Sep 2015 02:31:26 +0000 (22:31 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Sun, 3 Apr 2016 19:23:38 +0000 (15:23 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/wrapfs/file.c
fs/wrapfs/wrapfs.h

index 0d4086da679e0612b3b9f89069a35ce9d6c736e9..d9798ae7c7298aab7533c38d2ee7567953b825c4 100644 (file)
@@ -265,63 +265,6 @@ static int wrapfs_fasync(int fd, struct file *file, int flag)
        return err;
 }
 
-static ssize_t wrapfs_aio_read(struct kiocb *iocb, const struct iovec *iov,
-                              unsigned long nr_segs, loff_t pos)
-{
-       int err = -EINVAL;
-       struct file *file, *lower_file;
-
-       file = iocb->ki_filp;
-       lower_file = wrapfs_lower_file(file);
-       if (!lower_file->f_op->aio_read)
-               goto out;
-       /*
-        * It appears safe to rewrite this iocb, because in
-        * do_io_submit@fs/aio.c, iocb is a just copy from user.
-        */
-       get_file(lower_file); /* prevent lower_file from being released */
-       iocb->ki_filp = lower_file;
-       err = lower_file->f_op->aio_read(iocb, iov, nr_segs, pos);
-       iocb->ki_filp = file;
-       fput(lower_file);
-       /* update upper inode atime as needed */
-       if (err >= 0 || err == -EIOCBQUEUED)
-               fsstack_copy_attr_atime(file->f_path.dentry->d_inode,
-                                       file_inode(lower_file));
-out:
-       return err;
-}
-
-static ssize_t wrapfs_aio_write(struct kiocb *iocb, const struct iovec *iov,
-                               unsigned long nr_segs, loff_t pos)
-{
-       int err = -EINVAL;
-       struct file *file, *lower_file;
-
-       file = iocb->ki_filp;
-       lower_file = wrapfs_lower_file(file);
-       if (!lower_file->f_op->aio_write)
-               goto out;
-       /*
-        * It appears safe to rewrite this iocb, because in
-        * do_io_submit@fs/aio.c, iocb is a just copy from user.
-        */
-       get_file(lower_file); /* prevent lower_file from being released */
-       iocb->ki_filp = lower_file;
-       err = lower_file->f_op->aio_write(iocb, iov, nr_segs, pos);
-       iocb->ki_filp = file;
-       fput(lower_file);
-       /* update upper inode times/sizes as needed */
-       if (err >= 0 || err == -EIOCBQUEUED) {
-               fsstack_copy_inode_size(file->f_path.dentry->d_inode,
-                                       file_inode(lower_file));
-               fsstack_copy_attr_times(file->f_path.dentry->d_inode,
-                                       file_inode(lower_file));
-       }
-out:
-       return err;
-}
-
 /*
  * Wrapfs cannot use generic_file_llseek as ->llseek, because it would
  * only set the offset of the upper file.  So we have to implement our
@@ -417,8 +360,6 @@ const struct file_operations wrapfs_main_fops = {
        .release        = wrapfs_file_release,
        .fsync          = wrapfs_fsync,
        .fasync         = wrapfs_fasync,
-       .aio_read       = wrapfs_aio_read,
-       .aio_write      = wrapfs_aio_write,
        .read_iter      = wrapfs_read_iter,
        .write_iter     = wrapfs_write_iter,
 };
index 6520c0f32d7a55edc8fcc788014c1c9cc14a989a..24928834a5637a73ca753f54564319f4ab5f0602 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/dcache.h>
 #include <linux/file.h>
 #include <linux/fs.h>
-#include <linux/aio.h>
 #include <linux/mm.h>
 #include <linux/mount.h>
 #include <linux/namei.h>