The commit is pushed to "branch-rh7-3.10.0-693.17.1.vz7.45.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.17.1.vz7.43.7
------>
commit ad01e6c685688f221b2398036b764f33181707cd
Author: Dmitry Monakhov <dmonak...@openvz.org>
Date:   Mon Feb 19 14:02:58 2018 +0300

    ploop: kaio_io_page switch to bvec iter
    
    iov_iter_page is crappy interface. In fact single page is just
    a particular case of bvec. It is reasonable to switch to bvec.
    
    https://jira.sw.ru/browse/PSBM-80680
    Signed-off-by: Dmitry Monakhov <dmonak...@openvz.org>
---
 drivers/block/ploop/io_kaio.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/block/ploop/io_kaio.c b/drivers/block/ploop/io_kaio.c
index ef1310e68213..10b841a012f8 100644
--- a/drivers/block/ploop/io_kaio.c
+++ b/drivers/block/ploop/io_kaio.c
@@ -662,6 +662,7 @@ kaio_io_page(struct ploop_io * io, int op, struct 
ploop_request * preq,
        struct iov_iter iter;
        loff_t pos = (loff_t) sec << 9;
        struct file *file = io->files.file;
+       struct kaio_req *kreq;
        int err;
 
        ploop_prepare_io_request(preq);
@@ -671,10 +672,19 @@ kaio_io_page(struct ploop_io * io, int op, struct 
ploop_request * preq,
                PLOOP_REQ_SET_ERROR(preq, -ENOMEM);
                goto out;
        }
+       kreq = kaio_kreq_alloc(preq, 1);
+       if (!kreq) {
+               aio_kernel_free(iocb);
+               PLOOP_REQ_SET_ERROR(preq, -ENOMEM);
+               goto out;
+       }
+       kreq->bvecs->bv_page = page;
+       kreq->bvecs->bv_offset = 0;
+       kreq->bvecs->bv_len = PAGE_SIZE;
 
-       iov_iter_init_page(&iter, page, PAGE_SIZE, 0);
+       iov_iter_init_bvec(&iter, kreq->bvecs, 1, PAGE_SIZE, 0);
        aio_kernel_init_iter(iocb, file, op, &iter, pos);
-       aio_kernel_init_callback(iocb, kaio_rw_aio_complete, (u64)preq);
+       aio_kernel_init_callback(iocb, kaio_rw_kreq_complete, (u64)kreq);
 
        atomic_inc(&preq->io_count);
 
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to