qemu-e2k/hw/block
Paolo Bonzini 2a6cdd6d35 virtio-blk: correctly dirty guest memory
After qemu_iovec_destroy, the QEMUIOVector's size is zeroed and
the zero size ultimately is used to compute virtqueue_push's len
argument.  Therefore, reads from virtio-blk devices did not
migrate their results correctly.  (Writes were okay).

Save the size in virtio_blk_handle_request, and use it when the request
is completed.

Based on a patch by Wen Congyang.

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Tested-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Message-id: 1427997044-392-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2015-04-08 10:39:18 +01:00
..
dataplane virtio-blk: correctly dirty guest memory 2015-04-08 10:39:18 +01:00
block.c BlockConf: Call backend functions to detect geometry and blocksizes 2015-03-10 14:02:22 +01:00
cdrom.c
ecc.c
fdc.c vmstate: accept QEMUTimer in VMSTATE_TIMER*, add VMSTATE_TIMER_PTR* 2015-01-26 12:22:44 +01:00
hd-geometry.c BlockConf: Call backend functions to detect geometry and blocksizes 2015-03-10 14:02:22 +01:00
m25p80.c hw: Mark devices picking up block backends actively FIXME 2015-04-02 15:26:27 +02:00
Makefile.objs
nand.c block: remove superfluous '\n' around error_report/error_setg 2015-03-10 08:15:33 +03:00
nvme.c nvme: Fix unintentional integer overflow (OVERFLOW_BEFORE_WIDEN) 2015-03-27 10:01:12 +00:00
nvme.h
onenand.c onenand: g_malloc() can't fail, bury dead error handling 2015-02-10 09:27:20 +03:00
pflash_cfi01.c hw: Propagate errors through qdev_prop_set_drive() 2015-03-10 11:18:23 +01:00
pflash_cfi02.c hw: Propagate errors through qdev_prop_set_drive() 2015-03-10 11:18:23 +01:00
tc58128.c
virtio-blk.c virtio-blk: correctly dirty guest memory 2015-04-08 10:39:18 +01:00
xen_blkif.h
xen_disk.c block/xen: Use blk_new_open() in blk_connect() 2015-02-16 15:07:18 +00:00