diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2017-09-25 12:29:17 +0100 |
---|---|---|
committer | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2017-09-27 11:44:18 +0100 |
commit | 2f168d0708581c33baf6c78d75a89e8cd705f9f6 (patch) | |
tree | fd78df5cfa57d44091879e6906fd4d5736e35747 /hw/virtio | |
parent | 687433f61173a9ed80609f16f8bc4b9255bd815c (diff) |
migration: Route more error paths
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 <dgilbert@redhat.com>
Message-Id: <20170925112917.21340-7-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit message fix up as Peter's review
Diffstat (limited to 'hw/virtio')
-rw-r--r-- | hw/virtio/virtio.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 3129d25c00..311929e9df 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1897,7 +1897,7 @@ static const VMStateDescription vmstate_virtio = { } }; -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); } /* 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); } /* A wrapper for use as a VMState .get function */ |