2222#include <asm/unistd.h>
2323
2424typedef ssize_t (* io_fn_t )(struct file * , char __user * , size_t , loff_t * );
25- typedef ssize_t (* iov_fn_t )(struct kiocb * , const struct iovec * ,
26- unsigned long , loff_t );
2725typedef ssize_t (* iter_fn_t )(struct kiocb * , struct iov_iter * );
2826
2927const struct file_operations generic_ro_fops = {
@@ -668,21 +666,6 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
668666 return ret ;
669667}
670668
671- static 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-
686669/* Do it by hand, with file-ops */
687670static ssize_t do_loop_readv_writev (struct file * filp , struct iov_iter * iter ,
688671 loff_t * ppos , io_fn_t fn )
@@ -797,7 +780,6 @@ static ssize_t do_readv_writev(int type, struct file *file,
797780 struct iov_iter iter ;
798781 ssize_t ret ;
799782 io_fn_t fn ;
800- iov_fn_t fnv ;
801783 iter_fn_t iter_fn ;
802784
803785 ret = import_iovec (type , uvector , nr_segs ,
@@ -812,22 +794,17 @@ static ssize_t do_readv_writev(int type, struct file *file,
812794 if (ret < 0 )
813795 goto out ;
814796
815- fnv = NULL ;
816797 if (type == READ ) {
817798 fn = file -> f_op -> read ;
818- fnv = file -> f_op -> aio_read ;
819799 iter_fn = file -> f_op -> read_iter ;
820800 } else {
821801 fn = (io_fn_t )file -> f_op -> write ;
822- fnv = file -> f_op -> aio_write ;
823802 iter_fn = file -> f_op -> write_iter ;
824803 file_start_write (file );
825804 }
826805
827806 if (iter_fn )
828807 ret = do_iter_readv_writev (file , & iter , pos , iter_fn );
829- else if (fnv )
830- ret = do_sync_readv_writev (file , & iter , pos , fnv );
831808 else
832809 ret = do_loop_readv_writev (file , & iter , pos , fn );
833810
@@ -977,7 +954,6 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
977954 struct iov_iter iter ;
978955 ssize_t ret ;
979956 io_fn_t fn ;
980- iov_fn_t fnv ;
981957 iter_fn_t iter_fn ;
982958
983959 ret = compat_import_iovec (type , uvector , nr_segs ,
@@ -992,22 +968,17 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
992968 if (ret < 0 )
993969 goto out ;
994970
995- fnv = NULL ;
996971 if (type == READ ) {
997972 fn = file -> f_op -> read ;
998- fnv = file -> f_op -> aio_read ;
999973 iter_fn = file -> f_op -> read_iter ;
1000974 } else {
1001975 fn = (io_fn_t )file -> f_op -> write ;
1002- fnv = file -> f_op -> aio_write ;
1003976 iter_fn = file -> f_op -> write_iter ;
1004977 file_start_write (file );
1005978 }
1006979
1007980 if (iter_fn )
1008981 ret = do_iter_readv_writev (file , & iter , pos , iter_fn );
1009- else if (fnv )
1010- ret = do_sync_readv_writev (file , & iter , pos , fnv );
1011982 else
1012983 ret = do_loop_readv_writev (file , & iter , pos , fn );
1013984
0 commit comments