[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 2/6] block: Make .bdrv_load_vmstate() vectored
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [PATCH 2/6] block: Make .bdrv_load_vmstate() vectored |
Date: |
Fri, 10 Jun 2016 15:25:59 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 06/10/2016 10:05 AM, Kevin Wolf wrote:
> This brings it in line with .bdrv_save_vmstate().
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block/io.c | 26 +++++++++++++++++++++-----
> block/qcow2.c | 6 +++---
> block/sheepdog.c | 13 ++++++++++---
> include/block/block.h | 1 +
> include/block/block_int.h | 4 ++--
> 5 files changed, 37 insertions(+), 13 deletions(-)
>
> diff --git a/block/io.c b/block/io.c
> index 11510cf..602c7d3 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -1862,13 +1862,29 @@ int bdrv_writev_vmstate(BlockDriverState *bs,
> QEMUIOVector *qiov, int64_t pos)
> int bdrv_load_vmstate(BlockDriverState *bs, uint8_t *buf,
> int64_t pos, int size)
> {
> + QEMUIOVector qiov;
> + struct iovec iov = {
> + .iov_base = buf,
> + .iov_len = size,
> + };
> + int ret;
Dead variable.
> +
> + qemu_iovec_init_external(&qiov, &iov, 1);
> + return bdrv_readv_vmstate(bs, &qiov, pos);
> +}
> +
> +int bdrv_readv_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos)
> +{
> BlockDriver *drv = bs->drv;
> - if (!drv)
> +
> + if (!drv) {
> return -ENOMEDIUM;
> - if (drv->bdrv_load_vmstate)
> - return drv->bdrv_load_vmstate(bs, buf, pos, size);
> - if (bs->file)
> - return bdrv_load_vmstate(bs->file->bs, buf, pos, size);
> + } else if (drv->bdrv_load_vmstate) {
> + return drv->bdrv_load_vmstate(bs, qiov, pos);
> + } else if (bs->file) {
> + return bdrv_readv_vmstate(bs->file->bs, qiov, pos);
> + }
Don't know that I would have used 'else if' after a return, but it's not
wrong, so no need to change.
With the dead 'ret' gone,
Reviewed-by: Eric Blake <address@hidden>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [PATCH 0/6] block: bdrv_load/save_vmstate() cleanups, Kevin Wolf, 2016/06/10
- [Qemu-block] [PATCH 3/6] block: Allow .bdrv_load/save_vmstate() to return 0/-errno, Kevin Wolf, 2016/06/10
- [Qemu-block] [PATCH 1/6] block: Introduce bdrv_preadv(), Kevin Wolf, 2016/06/10
- [Qemu-block] [PATCH 2/6] block: Make .bdrv_load_vmstate() vectored, Kevin Wolf, 2016/06/10
- Re: [Qemu-block] [PATCH 2/6] block: Make .bdrv_load_vmstate() vectored,
Eric Blake <=
- [Qemu-block] [PATCH 4/6] block: Make bdrv_load/save_vmstate coroutine_fns, Kevin Wolf, 2016/06/10
- [Qemu-block] [PATCH 5/6] qcow2: Let vmstate call qcow2_co_preadv/pwrite directly, Kevin Wolf, 2016/06/10
- [Qemu-block] [PATCH 6/6] block: Remove bs->zero_beyond_eof, Kevin Wolf, 2016/06/10
- Re: [Qemu-block] [PATCH 0/6] block: bdrv_load/save_vmstate() cleanups, Fam Zheng, 2016/06/11