]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ceph: Fix up for iov_iter changes
authorMark Brown <broonie@linaro.org>
Thu, 3 Oct 2013 12:05:20 +0000 (13:05 +0100)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 13:03:00 +0000 (15:03 +0200)
Extend an earlier fixup by Stephen Rothwell.

Signed-off-by: Mark Brown <broonie@linaro.org>
fs/ceph/file.c

index c4419e848a4f89eced64c8a156a560f62bc2cbdd..37b5b5c4ad5bdaf14b70dc37bd32cd3b6371fbb9 100644 (file)
@@ -434,8 +434,8 @@ static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *i,
 
        if (file->f_flags & O_DIRECT) {
                while (iov_iter_count(i)) {
-                       void __user *data = i->iov[0].iov_base + i->iov_offset;
-                       size_t len = i->iov[0].iov_len - i->iov_offset;
+                       void __user *data = iov_iter_iovec(i)->iov_base + i->iov_offset;
+                       size_t len = iov_iter_iovec(i)->iov_len - i->iov_offset;
 
                        num_pages = calc_pages_for((unsigned long)data, len);
                        pages = ceph_get_direct_page_vector(data,
@@ -467,9 +467,9 @@ static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *i,
                        size_t left = len = ret;
 
                        while (left) {
-                               void __user *data = i->iov[0].iov_base
+                               void __user *data = iov_iter_iovec(i)->iov_base
                                                        + i->iov_offset;
-                               l = min(i->iov[0].iov_len - i->iov_offset,
+                               l = min(iov_iter_iovec(i)->iov_len - i->iov_offset,
                                        left);
 
                                ret = ceph_copy_page_vector_to_user(&pages[k],
@@ -583,8 +583,8 @@ ceph_sync_direct_write(struct kiocb *iocb, const struct iovec *iov,
        iov_iter_init(&i, iov, nr_segs, count, 0);
 
        while (iov_iter_count(&i) > 0) {
-               void __user *data = i.iov->iov_base + i.iov_offset;
-               u64 len = i.iov->iov_len - i.iov_offset;
+               void __user *data = iov_iter_iovec(&i)->iov_base + i.iov_offset;
+               u64 len = iov_iter_iovec(&i)->iov_len - i.iov_offset;
 
                page_align = (unsigned long)data & ~PAGE_MASK;