Skip to content

Commit

Permalink
qemu-img: use buffer-based io
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Vladimir Sementsov-Ogievskiy authored and kevmw committed Apr 30, 2019
1 parent f4326ae commit 265a7e5
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions qemu-img.c
Expand Up @@ -1680,7 +1680,6 @@ static int coroutine_fn convert_co_read(ImgConvertState *s, int64_t sector_num,
int nb_sectors, uint8_t *buf)
{
int n, ret;
QEMUIOVector qiov;

assert(nb_sectors <= s->buf_sectors);
while (nb_sectors > 0) {
Expand All @@ -1696,11 +1695,10 @@ static int coroutine_fn convert_co_read(ImgConvertState *s, int64_t sector_num,
bs_sectors = s->src_sectors[src_cur];

n = MIN(nb_sectors, bs_sectors - (sector_num - src_cur_offset));
qemu_iovec_init_buf(&qiov, buf, n << BDRV_SECTOR_BITS);

ret = blk_co_preadv(
ret = blk_co_pread(
blk, (sector_num - src_cur_offset) << BDRV_SECTOR_BITS,
n << BDRV_SECTOR_BITS, &qiov, 0);
n << BDRV_SECTOR_BITS, buf, 0);
if (ret < 0) {
return ret;
}
Expand All @@ -1719,7 +1717,6 @@ static int coroutine_fn convert_co_write(ImgConvertState *s, int64_t sector_num,
enum ImgConvertBlockStatus status)
{
int ret;
QEMUIOVector qiov;

while (nb_sectors > 0) {
int n = nb_sectors;
Expand Down Expand Up @@ -1747,10 +1744,8 @@ static int coroutine_fn convert_co_write(ImgConvertState *s, int64_t sector_num,
(s->compressed &&
!buffer_is_zero(buf, n * BDRV_SECTOR_SIZE)))
{
qemu_iovec_init_buf(&qiov, buf, n << BDRV_SECTOR_BITS);

ret = blk_co_pwritev(s->target, sector_num << BDRV_SECTOR_BITS,
n << BDRV_SECTOR_BITS, &qiov, flags);
ret = blk_co_pwrite(s->target, sector_num << BDRV_SECTOR_BITS,
n << BDRV_SECTOR_BITS, buf, flags);
if (ret < 0) {
return ret;
}
Expand Down

0 comments on commit 265a7e5

Please sign in to comment.