pass iov_iter to ->direct_IO()
[linux-2.6-block.git] / fs / ext4 / inode.c
index d7b7462a0e13e11e7131f2b148d1323a3de5c996..f51db730da3900bbec98102cecfaf4184252b04f 100644 (file)
@@ -3222,8 +3222,7 @@ retake_lock:
 }
 
 static ssize_t ext4_direct_IO(int rw, struct kiocb *iocb,
-                             const struct iovec *iov, loff_t offset,
-                             unsigned long nr_segs)
+                             struct iov_iter *iter, loff_t offset)
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_mapping->host;
@@ -3239,13 +3238,13 @@ static ssize_t ext4_direct_IO(int rw, struct kiocb *iocb,
        if (ext4_has_inline_data(inode))
                return 0;
 
-       trace_ext4_direct_IO_enter(inode, offset, iov_length(iov, nr_segs), rw);
+       trace_ext4_direct_IO_enter(inode, offset, iov_length(iter->iov, iter->nr_segs), rw);
        if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
-               ret = ext4_ext_direct_IO(rw, iocb, iov, offset, nr_segs);
+               ret = ext4_ext_direct_IO(rw, iocb, iter->iov, offset, iter->nr_segs);
        else
-               ret = ext4_ind_direct_IO(rw, iocb, iov, offset, nr_segs);
+               ret = ext4_ind_direct_IO(rw, iocb, iter->iov, offset, iter->nr_segs);
        trace_ext4_direct_IO_exit(inode, offset,
-                               iov_length(iov, nr_segs), rw, ret);
+                               iov_length(iter->iov, iter->nr_segs), rw, ret);
        return ret;
 }