diff options
| author | Vladimir Sementsov-Ogievskiy | 2019-06-04 18:15:04 +0200 |
|---|---|---|
| committer | Stefan Hajnoczi | 2019-08-27 15:52:45 +0200 |
| commit | f76889e7b947d896db51be8a4d9c941c2f70365a (patch) | |
| tree | d233a85f4d166859d08cf38aa556f6297c5f59a6 /block | |
| parent | util/iov: introduce qemu_iovec_init_extended (diff) | |
| download | qemu-f76889e7b947d896db51be8a4d9c941c2f70365a.tar.gz qemu-f76889e7b947d896db51be8a4d9c941c2f70365a.tar.xz qemu-f76889e7b947d896db51be8a4d9c941c2f70365a.zip | |
util/iov: improve qemu_iovec_is_zero
We'll need to check a part of qiov soon, so implement it now.
Optimization with align down to 4 * sizeof(long) is dropped due to:
1. It is strange: it aligns length of the buffer, but where is a
guarantee that buffer pointer is aligned itself?
2. buffer_is_zero() is a better place for optimizations and it has
them.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20190604161514.262241-3-vsementsov@virtuozzo.com
Message-Id: <20190604161514.262241-3-vsementsov@virtuozzo.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'block')
| -rw-r--r-- | block/io.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/io.c b/block/io.c index 56bbf195bb..f656fb2dce 100644 --- a/block/io.c +++ b/block/io.c @@ -1722,7 +1722,7 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChild *child, if (!ret && bs->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF && !(flags & BDRV_REQ_ZERO_WRITE) && drv->bdrv_co_pwrite_zeroes && - qemu_iovec_is_zero(qiov)) { + qemu_iovec_is_zero(qiov, 0, qiov->size)) { flags |= BDRV_REQ_ZERO_WRITE; if (bs->detect_zeroes == BLOCKDEV_DETECT_ZEROES_OPTIONS_UNMAP) { flags |= BDRV_REQ_MAY_UNMAP; |
