aboutsummaryrefslogtreecommitdiffstats
path: root/fs/read_write.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2015-04-04 01:14:53 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2015-04-11 22:29:43 -0400
commit8436318205b9f29e45db88850ec60e326327e241 (patch)
tree4339c116819e9e6d8e61a1876d9d0d08d0ee089c /fs/read_write.c
parent1c65d98672e09a0cb28e1e9ae49e9d96355f522f (diff)
->aio_read and ->aio_write removed
no remaining users Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/read_write.c')
-rw-r--r--fs/read_write.c29
1 files changed, 0 insertions, 29 deletions
diff --git a/fs/read_write.c b/fs/read_write.c
index 3d42d8ee5940..45d583c33879 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -22,8 +22,6 @@
22#include <asm/unistd.h> 22#include <asm/unistd.h>
23 23
24typedef ssize_t (*io_fn_t)(struct file *, char __user *, size_t, loff_t *); 24typedef ssize_t (*io_fn_t)(struct file *, char __user *, size_t, loff_t *);
25typedef ssize_t (*iov_fn_t)(struct kiocb *, const struct iovec *,
26 unsigned long, loff_t);
27typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *); 25typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *);
28 26
29const struct file_operations generic_ro_fops = { 27const struct file_operations generic_ro_fops = {
@@ -668,21 +666,6 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
668 return ret; 666 return ret;
669} 667}
670 668
671static ssize_t do_sync_readv_writev(struct file *filp, struct iov_iter *iter,
672 loff_t *ppos, iov_fn_t fn)
673{
674 struct kiocb kiocb;
675 ssize_t ret;
676
677 init_sync_kiocb(&kiocb, filp);
678 kiocb.ki_pos = *ppos;
679
680 ret = fn(&kiocb, iter->iov, iter->nr_segs, kiocb.ki_pos);
681 BUG_ON(ret == -EIOCBQUEUED);
682 *ppos = kiocb.ki_pos;
683 return ret;
684}
685
686/* Do it by hand, with file-ops */ 669/* Do it by hand, with file-ops */
687static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter, 670static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter,
688 loff_t *ppos, io_fn_t fn) 671 loff_t *ppos, io_fn_t fn)
@@ -797,7 +780,6 @@ static ssize_t do_readv_writev(int type, struct file *file,
797 struct iov_iter iter; 780 struct iov_iter iter;
798 ssize_t ret; 781 ssize_t ret;
799 io_fn_t fn; 782 io_fn_t fn;
800 iov_fn_t fnv;
801 iter_fn_t iter_fn; 783 iter_fn_t iter_fn;
802 784
803 ret = import_iovec(type, uvector, nr_segs, 785 ret = import_iovec(type, uvector, nr_segs,
@@ -812,22 +794,17 @@ static ssize_t do_readv_writev(int type, struct file *file,
812 if (ret < 0) 794 if (ret < 0)
813 goto out; 795 goto out;
814 796
815 fnv = NULL;
816 if (type == READ) { 797 if (type == READ) {
817 fn = file->f_op->read; 798 fn = file->f_op->read;
818 fnv = file->f_op->aio_read;
819 iter_fn = file->f_op->read_iter; 799 iter_fn = file->f_op->read_iter;
820 } else { 800 } else {
821 fn = (io_fn_t)file->f_op->write; 801 fn = (io_fn_t)file->f_op->write;
822 fnv = file->f_op->aio_write;
823 iter_fn = file->f_op->write_iter; 802 iter_fn = file->f_op->write_iter;
824 file_start_write(file); 803 file_start_write(file);
825 } 804 }
826 805
827 if (iter_fn) 806 if (iter_fn)
828 ret = do_iter_readv_writev(file, &iter, pos, iter_fn); 807 ret = do_iter_readv_writev(file, &iter, pos, iter_fn);
829 else if (fnv)
830 ret = do_sync_readv_writev(file, &iter, pos, fnv);
831 else 808 else
832 ret = do_loop_readv_writev(file, &iter, pos, fn); 809 ret = do_loop_readv_writev(file, &iter, pos, fn);
833 810
@@ -977,7 +954,6 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
977 struct iov_iter iter; 954 struct iov_iter iter;
978 ssize_t ret; 955 ssize_t ret;
979 io_fn_t fn; 956 io_fn_t fn;
980 iov_fn_t fnv;
981 iter_fn_t iter_fn; 957 iter_fn_t iter_fn;
982 958
983 ret = compat_import_iovec(type, uvector, nr_segs, 959 ret = compat_import_iovec(type, uvector, nr_segs,
@@ -992,22 +968,17 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
992 if (ret < 0) 968 if (ret < 0)
993 goto out; 969 goto out;
994 970
995 fnv = NULL;
996 if (type == READ) { 971 if (type == READ) {
997 fn = file->f_op->read; 972 fn = file->f_op->read;
998 fnv = file->f_op->aio_read;
999 iter_fn = file->f_op->read_iter; 973 iter_fn = file->f_op->read_iter;
1000 } else { 974 } else {
1001 fn = (io_fn_t)file->f_op->write; 975 fn = (io_fn_t)file->f_op->write;
1002 fnv = file->f_op->aio_write;
1003 iter_fn = file->f_op->write_iter; 976 iter_fn = file->f_op->write_iter;
1004 file_start_write(file); 977 file_start_write(file);
1005 } 978 }
1006 979
1007 if (iter_fn) 980 if (iter_fn)
1008 ret = do_iter_readv_writev(file, &iter, pos, iter_fn); 981 ret = do_iter_readv_writev(file, &iter, pos, iter_fn);
1009 else if (fnv)
1010 ret = do_sync_readv_writev(file, &iter, pos, fnv);
1011 else 982 else
1012 ret = do_loop_readv_writev(file, &iter, pos, fn); 983 ret = do_loop_readv_writev(file, &iter, pos, fn);
1013 984