direct_IO: remove rw from a_ops->direct_IO()
authorOmar Sandoval <osandov@osandov.com>
Mon, 16 Mar 2015 11:33:53 +0000 (04:33 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Apr 2015 02:29:45 +0000 (22:29 -0400)
Now that no one is using rw, remove it completely.

Signed-off-by: Omar Sandoval <osandov@osandov.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
31 files changed:
Documentation/filesystems/Locking
Documentation/filesystems/vfs.txt
drivers/staging/lustre/lustre/llite/rw26.c
fs/9p/vfs_addr.c
fs/affs/file.c
fs/block_dev.c
fs/btrfs/inode.c
fs/ceph/addr.c
fs/cifs/file.c
fs/exofs/inode.c
fs/ext2/inode.c
fs/ext3/inode.c
fs/ext4/inode.c
fs/f2fs/data.c
fs/fat/inode.c
fs/fuse/file.c
fs/gfs2/aops.c
fs/hfs/inode.c
fs/hfsplus/inode.c
fs/jfs/inode.c
fs/nfs/direct.c
fs/nilfs2/inode.c
fs/ocfs2/aops.c
fs/reiserfs/inode.c
fs/udf/file.c
fs/udf/inode.c
fs/xfs/xfs_aops.c
include/linux/fs.h
include/linux/nfs_fs.h
mm/filemap.c
mm/page_io.c

index c3cd6279e92e7a934ce799a8ca942c42872b4815..7cdbca44e34331be6a419c461b3848fb73d8e207 100644 (file)
@@ -196,7 +196,7 @@ prototypes:
        void (*invalidatepage) (struct page *, unsigned int, unsigned int);
        int (*releasepage) (struct page *, int);
        void (*freepage)(struct page *);
-       int (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset);
+       int (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset);
        int (*migratepage)(struct address_space *, struct page *, struct page *);
        int (*launder_page)(struct page *);
        int (*is_partially_uptodate)(struct page *, unsigned long, unsigned long);
index 207cdca68bedf118554bd0addf5517546c190e17..5d833b32bbcd1046de40a15fee169ed462d274fc 100644 (file)
@@ -590,7 +590,7 @@ struct address_space_operations {
        void (*invalidatepage) (struct page *, unsigned int, unsigned int);
        int (*releasepage) (struct page *, int);
        void (*freepage)(struct page *);
-       ssize_t (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset);
+       ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset);
        /* migrate the contents of a page to the specified target */
        int (*migratepage) (struct page *, struct page *);
        int (*launder_page) (struct page *);
index 3aa9de6bcc400eafbba5fe15869a024ff6885110..0d7ce6b0e23ccdf68607db847825a73e4bb2d4cc 100644 (file)
@@ -359,8 +359,8 @@ static ssize_t ll_direct_IO_26_seg(const struct lu_env *env, struct cl_io *io,
  * up to 22MB for 128kB kmalloc and up to 682MB for 4MB kmalloc. */
 #define MAX_DIO_SIZE ((MAX_MALLOC / sizeof(struct brw_page) * PAGE_CACHE_SIZE) & \
                      ~(DT_MAX_BRW_SIZE - 1))
-static ssize_t ll_direct_IO_26(int rw, struct kiocb *iocb,
-                              struct iov_iter *iter, loff_t file_offset)
+static ssize_t ll_direct_IO_26(struct kiocb *iocb, struct iov_iter *iter,
+                              loff_t file_offset)
 {
        struct lu_env *env;
        struct cl_io *io;
index dd5543b1d183ca395cc1a21cf7a9fa1cf92a2c64..be35d05a4d0efc00c5955cc047ac20bea293149a 100644 (file)
@@ -230,7 +230,6 @@ static int v9fs_launder_page(struct page *page)
 
 /**
  * v9fs_direct_IO - 9P address space operation for direct I/O
- * @rw: direction (read or write)
  * @iocb: target I/O control block
  * @iov: array of vectors that define I/O buffer
  * @pos: offset in file to begin the operation
@@ -248,7 +247,7 @@ static int v9fs_launder_page(struct page *page)
  *
  */
 static ssize_t
-v9fs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
+v9fs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
 {
        struct file *file = iocb->ki_filp;
        ssize_t n;
index 7f05a468d594b31dea97a32b53056a0df4fe8db9..dcf27951781cfadc90711c0aa41f83401b2eb03b 100644 (file)
@@ -389,8 +389,7 @@ static void affs_write_failed(struct address_space *mapping, loff_t to)
 }
 
 static ssize_t
-affs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
-              loff_t offset)
+affs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index bc23afd35fdba7f7ca3752dbaf4a53a7dbefd412..6e3de63c30556bc46304d1c5b4827902342a44a1 100644 (file)
@@ -146,8 +146,7 @@ blkdev_get_block(struct inode *inode, sector_t iblock,
 }
 
 static ssize_t
-blkdev_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
-                       loff_t offset)
+blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index ca69e83d4f3c9140a67437aec4525824d5dfc015..43192e10cc4331f9f533c61f10f21c602bdee806 100644 (file)
@@ -8114,8 +8114,8 @@ out:
        return retval;
 }
 
-static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb,
-                       struct iov_iter *iter, loff_t offset)
+static ssize_t btrfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                              loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index fd5599d323620a2c5617ea5355e2e1320d6a0954..155ab9c0246b202aed75e3db02313369fab52976 100644 (file)
@@ -1198,8 +1198,7 @@ static int ceph_write_end(struct file *file, struct address_space *mapping,
  * intercept O_DIRECT reads and writes early, this function should
  * never get called.
  */
-static ssize_t ceph_direct_io(int rw, struct kiocb *iocb,
-                             struct iov_iter *iter,
+static ssize_t ceph_direct_io(struct kiocb *iocb, struct iov_iter *iter,
                              loff_t pos)
 {
        WARN_ON(1);
index ca30c391a894a0e9df8eac6ed1ede194c89f1885..72394c5abd0fc2d9c7d1c70e0443798a9f173c20 100644 (file)
@@ -3877,8 +3877,7 @@ void cifs_oplock_break(struct work_struct *work)
  * Direct IO is not yet supported in the cached mode. 
  */
 static ssize_t
-cifs_direct_io(int rw, struct kiocb *iocb, struct iov_iter *iter,
-               loff_t pos)
+cifs_direct_io(struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
 {
         /*
          * FIXME
index a198e94813fec42378c75c568b013f360c5ea1e2..35073aaec6e08895f06ce3f7db86820d7dc982ec 100644 (file)
@@ -963,8 +963,8 @@ static void exofs_invalidatepage(struct page *page, unsigned int offset,
 
 
  /* TODO: Should be easy enough to do proprly */
-static ssize_t exofs_direct_IO(int rw, struct kiocb *iocb,
-               struct iov_iter *iter, loff_t offset)
+static ssize_t exofs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                              loff_t offset)
 {
        return 0;
 }
index 685e514c57ddb0ecd2e50045a0035318a1a53375..e1abf75e994cb9b63c22a64591149b0ed39164f4 100644 (file)
@@ -851,8 +851,7 @@ static sector_t ext2_bmap(struct address_space *mapping, sector_t block)
 }
 
 static ssize_t
-ext2_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
-                       loff_t offset)
+ext2_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index c70839d26ccdb9b94c6799de504ef82da3e03100..13c0868c7160ee572f30601939fcd6f421a01f11 100644 (file)
@@ -1820,8 +1820,8 @@ static int ext3_releasepage(struct page *page, gfp_t wait)
  * crashes then stale disk data _may_ be exposed inside the file. But current
  * VFS code falls back into buffered path in that case so we are safe.
  */
-static ssize_t ext3_direct_IO(int rw, struct kiocb *iocb,
-                       struct iov_iter *iter, loff_t offset)
+static ssize_t ext3_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index cf6ba65360355aacc8dd6998edbded45991facd1..42c942a950e15d7a7ac819ce9859230111bbf407 100644 (file)
@@ -3089,8 +3089,8 @@ retake_lock:
        return ret;
 }
 
-static ssize_t ext4_direct_IO(int rw, struct kiocb *iocb,
-                             struct iov_iter *iter, loff_t offset)
+static ssize_t ext4_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index ce25f62edfa741a80db67e7a1e381b0612306f02..319eda511c4ff6e4bd869aaf2e1b711ecdc6470c 100644 (file)
@@ -1135,8 +1135,8 @@ static int check_direct_IO(struct inode *inode, struct iov_iter *iter,
        return 0;
 }
 
-static ssize_t f2fs_direct_IO(int rw, struct kiocb *iocb,
-               struct iov_iter *iter, loff_t offset)
+static ssize_t f2fs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index 342d791b28dbc75368d06baecdac803b5eb5a63e..41b729933638a128225422013417775fb0858c26 100644 (file)
@@ -245,8 +245,7 @@ static int fat_write_end(struct file *file, struct address_space *mapping,
        return err;
 }
 
-static ssize_t fat_direct_IO(int rw, struct kiocb *iocb,
-                            struct iov_iter *iter,
+static ssize_t fat_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
index c1a67da6a8a093de62fcf5b81f8c407914078d34..3d355e946991460b1c305d7f5982a54659ebb1f3 100644 (file)
@@ -2782,8 +2782,7 @@ static inline loff_t fuse_round_up(loff_t off)
 }
 
 static ssize_t
-fuse_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
-                       loff_t offset)
+fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset)
 {
        DECLARE_COMPLETION_ONSTACK(wait);
        ssize_t ret = 0;
index e22e6e686a1131936d501f050b4688cc1eb3414e..20dd33da92ded309ecfae28f68d2a419da914cb4 100644 (file)
@@ -1038,8 +1038,8 @@ static int gfs2_ok_for_dio(struct gfs2_inode *ip, loff_t offset)
 
 
 
-static ssize_t gfs2_direct_IO(int rw, struct kiocb *iocb,
-                             struct iov_iter *iter, loff_t offset)
+static ssize_t gfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index 0085d527a55cdb55cd3848b4fd44c0ded8239059..75fd5d873c196dfd76006e77ef25405c9359c224 100644 (file)
@@ -124,8 +124,8 @@ static int hfs_releasepage(struct page *page, gfp_t mask)
        return res ? try_to_free_buffers(page) : 0;
 }
 
-static ssize_t hfs_direct_IO(int rw, struct kiocb *iocb,
-               struct iov_iter *iter, loff_t offset)
+static ssize_t hfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                            loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index afcde36b506b6f3541964c222a3cece629086c46..a43811f909353354ca9bebd3e5d13212d30ae505 100644 (file)
@@ -122,8 +122,8 @@ static int hfsplus_releasepage(struct page *page, gfp_t mask)
        return res ? try_to_free_buffers(page) : 0;
 }
 
-static ssize_t hfsplus_direct_IO(int rw, struct kiocb *iocb,
-               struct iov_iter *iter, loff_t offset)
+static ssize_t hfsplus_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                                loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index e7047b63ffc5c49b6a11fee4307273cdc270cef5..070dc4b335449423091e67dd74c0f1c34617b041 100644 (file)
@@ -330,8 +330,8 @@ static sector_t jfs_bmap(struct address_space *mapping, sector_t block)
        return generic_block_bmap(mapping, block, jfs_get_block);
 }
 
-static ssize_t jfs_direct_IO(int rw, struct kiocb *iocb,
-       struct iov_iter *iter, loff_t offset)
+static ssize_t jfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                            loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index e8482b8f48302ad74255cc9b62bdbd7aca653819..06503bc604e18228747016f313590bf279a7eb92 100644 (file)
@@ -240,7 +240,6 @@ static int nfs_direct_cmp_commit_data_verf(struct nfs_direct_req *dreq,
 
 /**
  * nfs_direct_IO - NFS address space operation for direct I/O
- * @rw: direction (read or write)
  * @iocb: target I/O control block
  * @iov: array of vectors that define I/O buffer
  * @pos: offset in file to begin the operation
@@ -251,7 +250,7 @@ static int nfs_direct_cmp_commit_data_verf(struct nfs_direct_req *dreq,
  * shunt off direct read and write requests before the VFS gets them,
  * so this method is only ever called for swap.
  */
-ssize_t nfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
+ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
 {
        struct inode *inode = iocb->ki_filp->f_mapping->host;
 
index 4726f1493d5d75ebdc9a72a85044905da9e8df99..36f057fa8aa3be305ec0bb155a2924e8a9088957 100644 (file)
@@ -305,8 +305,7 @@ static int nilfs_write_end(struct file *file, struct address_space *mapping,
 }
 
 static ssize_t
-nilfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
-               loff_t offset)
+nilfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct address_space *mapping = file->f_mapping;
index 0ee9474cca468902fbfb21ea39ce643c96a9e472..28b5ad81bbec7b4686b3e6475570fe7393a3820a 100644 (file)
@@ -818,9 +818,7 @@ out:
        return ret;
 }
 
-static ssize_t ocfs2_direct_IO(int rw,
-                              struct kiocb *iocb,
-                              struct iov_iter *iter,
+static ssize_t ocfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
                               loff_t offset)
 {
        struct file *file = iocb->ki_filp;
index d61ab13244a86a64d2474a3a7fb2c832cc05727f..742242b60972671c50926f9a0dd0db48c4e7aeca 100644 (file)
@@ -3278,8 +3278,8 @@ static int reiserfs_releasepage(struct page *page, gfp_t unused_gfp_flags)
  * We thank Mingming Cao for helping us understand in great detail what
  * to do in this section of the code.
  */
-static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb,
-                                 struct iov_iter *iter, loff_t offset)
+static ssize_t reiserfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
+                                 loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
index 74050bff64f4000b745374fccde9a9e3eaec4256..78d42548b2608bfd9d21114398a400adbf881d75 100644 (file)
@@ -100,8 +100,7 @@ static int udf_adinicb_write_begin(struct file *file,
        return 0;
 }
 
-static ssize_t udf_adinicb_direct_IO(int rw, struct kiocb *iocb,
-                                    struct iov_iter *iter,
+static ssize_t udf_adinicb_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
                                     loff_t offset)
 {
        /* Fallback to buffered I/O. */
index a685aea930682eae2cfd458c84729f2240c5b222..4f178c83b04f17edf98a9fbbc582a2bb42a39a39 100644 (file)
@@ -215,8 +215,7 @@ static int udf_write_begin(struct file *file, struct address_space *mapping,
        return ret;
 }
 
-static ssize_t udf_direct_IO(int rw, struct kiocb *iocb,
-                            struct iov_iter *iter,
+static ssize_t udf_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
                             loff_t offset)
 {
        struct file *file = iocb->ki_filp;
index 532d5279df2fdf32373e64f579c54234e23acec4..1d8eef9cf0f509ac91f86f97ae7fe608e44bc849 100644 (file)
@@ -1495,7 +1495,6 @@ xfs_end_io_direct_write(
 
 STATIC ssize_t
 xfs_vm_direct_IO(
-       int                     rw,
        struct kiocb            *iocb,
        struct iov_iter         *iter,
        loff_t                  offset)
index 295bc589fe1b9dc9531bd1f12ea8463864971986..72e3759de8c38b5b4b3d2e9228eaaff00261407e 100644 (file)
@@ -383,7 +383,7 @@ struct address_space_operations {
        void (*invalidatepage) (struct page *, unsigned int, unsigned int);
        int (*releasepage) (struct page *, gfp_t);
        void (*freepage)(struct page *);
-       ssize_t (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset);
+       ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset);
        /*
         * migrate the contents of a page to the specified target. If
         * migrate_mode is MIGRATE_ASYNC, it must not block.
index b01ccf371fdcaf229f07bddbd2f12f9bbb5c53b0..3d1b0d2fe55e8d2725759b6a23913c3266713d39 100644 (file)
@@ -447,7 +447,7 @@ static inline struct rpc_cred *nfs_file_cred(struct file *file)
 /*
  * linux/fs/nfs/direct.c
  */
-extern ssize_t nfs_direct_IO(int, struct kiocb *, struct iov_iter *, loff_t);
+extern ssize_t nfs_direct_IO(struct kiocb *, struct iov_iter *, loff_t);
 extern ssize_t nfs_file_direct_read(struct kiocb *iocb,
                        struct iov_iter *iter,
                        loff_t pos);
index 876f4e6f3ed6674537e5acad829ac43c7aa8e110..9920db455f05679b5bad0dec4eba44fa45e619b6 100644 (file)
@@ -1707,7 +1707,7 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
                                        pos + count - 1);
                if (!retval) {
                        struct iov_iter data = *iter;
-                       retval = mapping->a_ops->direct_IO(READ, iocb, &data, pos);
+                       retval = mapping->a_ops->direct_IO(iocb, &data, pos);
                }
 
                if (retval > 0) {
@@ -2395,7 +2395,7 @@ generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos)
        }
 
        data = *from;
-       written = mapping->a_ops->direct_IO(WRITE, iocb, &data, pos);
+       written = mapping->a_ops->direct_IO(iocb, &data, pos);
 
        /*
         * Finally, try again to invalidate clean pages which might have been
index a96c8562d83567466b6633dd169c84ff63418e66..6424869e275e2aa2d09debfa791ea08302ac68be 100644 (file)
@@ -277,9 +277,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
 
                set_page_writeback(page);
                unlock_page(page);
-               ret = mapping->a_ops->direct_IO(ITER_BVEC | WRITE,
-                                               &kiocb, &from,
-                                               kiocb.ki_pos);
+               ret = mapping->a_ops->direct_IO(&kiocb, &from, kiocb.ki_pos);
                if (ret == PAGE_SIZE) {
                        count_vm_event(PSWPOUT);
                        ret = 0;