drivers/rtc/rtc-at91rm9200.c: make IO endian agnostic
[linux-2.6-block.git] / fs / read_write.c
index 3d42d8ee5940385bb64328d7df4afd3967813db2..45d583c33879e18d89b3fc06d48bbd05a30b6ab3 100644 (file)
@@ -22,8 +22,6 @@
 #include <asm/unistd.h>
 
 typedef ssize_t (*io_fn_t)(struct file *, char __user *, size_t, loff_t *);
-typedef ssize_t (*iov_fn_t)(struct kiocb *, const struct iovec *,
-               unsigned long, loff_t);
 typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *);
 
 const struct file_operations generic_ro_fops = {
@@ -668,21 +666,6 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
        return ret;
 }
 
-static ssize_t do_sync_readv_writev(struct file *filp, struct iov_iter *iter,
-               loff_t *ppos, iov_fn_t fn)
-{
-       struct kiocb kiocb;
-       ssize_t ret;
-
-       init_sync_kiocb(&kiocb, filp);
-       kiocb.ki_pos = *ppos;
-
-       ret = fn(&kiocb, iter->iov, iter->nr_segs, kiocb.ki_pos);
-       BUG_ON(ret == -EIOCBQUEUED);
-       *ppos = kiocb.ki_pos;
-       return ret;
-}
-
 /* Do it by hand, with file-ops */
 static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter,
                loff_t *ppos, io_fn_t fn)
@@ -797,7 +780,6 @@ static ssize_t do_readv_writev(int type, struct file *file,
        struct iov_iter iter;
        ssize_t ret;
        io_fn_t fn;
-       iov_fn_t fnv;
        iter_fn_t iter_fn;
 
        ret = import_iovec(type, uvector, nr_segs,
@@ -812,22 +794,17 @@ static ssize_t do_readv_writev(int type, struct file *file,
        if (ret < 0)
                goto out;
 
-       fnv = NULL;
        if (type == READ) {
                fn = file->f_op->read;
-               fnv = file->f_op->aio_read;
                iter_fn = file->f_op->read_iter;
        } else {
                fn = (io_fn_t)file->f_op->write;
-               fnv = file->f_op->aio_write;
                iter_fn = file->f_op->write_iter;
                file_start_write(file);
        }
 
        if (iter_fn)
                ret = do_iter_readv_writev(file, &iter, pos, iter_fn);
-       else if (fnv)
-               ret = do_sync_readv_writev(file, &iter, pos, fnv);
        else
                ret = do_loop_readv_writev(file, &iter, pos, fn);
 
@@ -977,7 +954,6 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
        struct iov_iter iter;
        ssize_t ret;
        io_fn_t fn;
-       iov_fn_t fnv;
        iter_fn_t iter_fn;
 
        ret = compat_import_iovec(type, uvector, nr_segs,
@@ -992,22 +968,17 @@ static ssize_t compat_do_readv_writev(int type, struct file *file,
        if (ret < 0)
                goto out;
 
-       fnv = NULL;
        if (type == READ) {
                fn = file->f_op->read;
-               fnv = file->f_op->aio_read;
                iter_fn = file->f_op->read_iter;
        } else {
                fn = (io_fn_t)file->f_op->write;
-               fnv = file->f_op->aio_write;
                iter_fn = file->f_op->write_iter;
                file_start_write(file);
        }
 
        if (iter_fn)
                ret = do_iter_readv_writev(file, &iter, pos, iter_fn);
-       else if (fnv)
-               ret = do_sync_readv_writev(file, &iter, pos, fnv);
        else
                ret = do_loop_readv_writev(file, &iter, pos, fn);