block/stream: use buffer-based io
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Mon, 22 Apr 2019 14:58:37 +0000 (17:58 +0300)
committerKevin Wolf <kwolf@redhat.com>
Tue, 30 Apr 2019 13:29:00 +0000 (15:29 +0200)
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/stream.c

index bfaebb861a0adb14cc65519d5321642ea3481a4b..1a906fd860623c02fa95a0e8a46b0f595ba209c8 100644 (file)
@@ -42,12 +42,10 @@ static int coroutine_fn stream_populate(BlockBackend *blk,
                                         int64_t offset, uint64_t bytes,
                                         void *buf)
 {
-    QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes);
-
     assert(bytes < SIZE_MAX);
 
     /* Copy-on-read the unallocated clusters */
-    return blk_co_preadv(blk, offset, qiov.size, &qiov, BDRV_REQ_COPY_ON_READ);
+    return blk_co_pread(blk, offset, bytes, buf, BDRV_REQ_COPY_ON_READ);
 }
 
 static void stream_abort(Job *job)