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