From c06e040781d733f88c584274d77816f3ea7d142d Mon Sep 17 00:00:00 2001 From: Juan Quintela <quintela@redhat.com> Date: Sat, 19 Dec 2009 02:24:37 -0200 Subject: [PATCH 03/16] virtio_blk: save if cache was enabled RH-Author: Juan Quintela <quintela@redhat.com> Message-id: <c6914124cb8014a121644a1cda9289b35b243b80.1261190612.git.quintela@redhat.com> Patchwork-id: 5815 O-Subject: [PATCH] virtio_blk: save if cache was enabled Bugzilla: 549938 RH-Acked-by: Markus Armbruster <armbru@redhat.com> RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com> RH-Acked-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> --- qemu/hw/virtio-blk.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> --- qemu/hw/virtio-blk.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/qemu/hw/virtio-blk.c b/qemu/hw/virtio-blk.c index 995ca81..d2e8147 100644 --- a/qemu/hw/virtio-blk.c +++ b/qemu/hw/virtio-blk.c @@ -318,13 +318,17 @@ static void virtio_blk_save(QEMUFile *f, void *opaque) req = req->next; } qemu_put_sbyte(f, 0); + if (version_id > 2) { + /* should we advertise barriers? */ + qemu_put_8s(f, &s->bs->enable_write_cache); + } } static int virtio_blk_load(QEMUFile *f, void *opaque, int version_id) { VirtIOBlock *s = opaque; - if (version_id != 2) + if (version_id < 2 || version_id > 3) return -EINVAL; virtio_load(&s->vdev, f); @@ -334,6 +338,11 @@ static int virtio_blk_load(QEMUFile *f, void *opaque, int version_id) req->next = s->rq; s->rq = req->next; } + if (version_id > 2) { + qemu_get_8s(f, &s->bs->enable_write_cache); + } else { + s->bs->enable_write_cache = 0; + } return 0; } @@ -366,7 +375,7 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs) s->vq = virtio_add_queue(&s->vdev, 128, virtio_blk_handle_output); qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); - register_savevm("virtio-blk", virtio_blk_id++, 2, + register_savevm("virtio-blk", virtio_blk_id++, 3, virtio_blk_save, virtio_blk_load, s); return s; -- 1.6.3.rc4.29.g8146