[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 6/6] migration: Route more error paths
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH v2 6/6] migration: Route more error paths |
Date: |
Wed, 27 Sep 2017 11:07:19 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
"Dr. David Alan Gilbert (git)" <address@hidden> wrote:
> From: "Dr. David Alan Gilbert" <address@hidden>
>
> vmstate_save is called in a few places, and vmstate_save_state is
> called in lots of places.
>
> Route error returns from the easier cases back up; there are lots
> of more complex cases where their own error paths need fixing.
>
> Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
But .....
> -void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> +int virtio_save(VirtIODevice *vdev, QEMUFile *f)
> {
> BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
> VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
> @@ -1947,20 +1947,21 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> }
>
> if (vdc->vmsd) {
> - vmstate_save_state(f, vdc->vmsd, vdev, NULL);
> + int ret = vmstate_save_state(f, vdc->vmsd, vdev, NULL);
> + if (ret) {
> + return ret;
> + }
> }
>
> /* Subsections */
> - vmstate_save_state(f, &vmstate_virtio, vdev, NULL);
> + return vmstate_save_state(f, &vmstate_virtio, vdev, NULL);
> }
We add error code, good.
>
> /* A wrapper for use as a VMState .put function */
> static int virtio_device_put(QEMUFile *f, void *opaque, size_t size,
> VMStateField *field, QJSON *vmdesc)
> {
> - virtio_save(VIRTIO_DEVICE(opaque), f);
> -
> - return 0;
> + return virtio_save(VIRTIO_DEVICE(opaque), f);
> }
And we add the error code. But are the callers ready to use it?
...
} else {
field->info->put(f, curr_elem, size, field, vmdesc_loop);
}
No, we need to fix it on the callers also. Yeap, that is can be fixed
in a posterios series.
Later, Juan.
- Re: [Qemu-devel] [PATCH v2 4/6] migration: wire vmstate_save_state errors up to vmstate_subsection_save, (continued)