mirror of https://gitee.com/openkylin/qemu.git
virtio-blk: implement per-device migration calls
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Reviewed-by: Alexander Graf <agraf@suse.de> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
037dab2fe8
commit
b2b295a74a
|
@ -611,11 +611,15 @@ static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status)
|
|||
|
||||
static void virtio_blk_save(QEMUFile *f, void *opaque)
|
||||
{
|
||||
VirtIOBlock *s = opaque;
|
||||
VirtIODevice *vdev = VIRTIO_DEVICE(s);
|
||||
VirtIOBlockReq *req = s->rq;
|
||||
VirtIODevice *vdev = VIRTIO_DEVICE(opaque);
|
||||
|
||||
virtio_save(vdev, f);
|
||||
}
|
||||
|
||||
static void virtio_blk_save_device(VirtIODevice *vdev, QEMUFile *f)
|
||||
{
|
||||
VirtIOBlock *s = VIRTIO_BLK(vdev);
|
||||
VirtIOBlockReq *req = s->rq;
|
||||
|
||||
while (req) {
|
||||
qemu_put_sbyte(f, 1);
|
||||
|
@ -630,16 +634,18 @@ static int virtio_blk_load(QEMUFile *f, void *opaque, int version_id)
|
|||
{
|
||||
VirtIOBlock *s = opaque;
|
||||
VirtIODevice *vdev = VIRTIO_DEVICE(s);
|
||||
int ret;
|
||||
|
||||
if (version_id != 2)
|
||||
return -EINVAL;
|
||||
|
||||
ret = virtio_load(vdev, f, version_id);
|
||||
if (ret) {
|
||||
return ret;
|
||||
return virtio_load(vdev, f, version_id);
|
||||
}
|
||||
|
||||
static int virtio_blk_load_device(VirtIODevice *vdev, QEMUFile *f,
|
||||
int version_id)
|
||||
{
|
||||
VirtIOBlock *s = VIRTIO_BLK(vdev);
|
||||
|
||||
while (qemu_get_sbyte(f)) {
|
||||
VirtIOBlockReq *req = virtio_blk_alloc_request(s);
|
||||
qemu_get_buffer(f, (unsigned char *)req->elem,
|
||||
|
@ -799,6 +805,8 @@ static void virtio_blk_class_init(ObjectClass *klass, void *data)
|
|||
vdc->get_features = virtio_blk_get_features;
|
||||
vdc->set_status = virtio_blk_set_status;
|
||||
vdc->reset = virtio_blk_reset;
|
||||
vdc->save = virtio_blk_save_device;
|
||||
vdc->load = virtio_blk_load_device;
|
||||
}
|
||||
|
||||
static const TypeInfo virtio_device_info = {
|
||||
|
|
Loading…
Reference in New Issue