On Tue, Apr 7, 2015 at 3:11 PM, Stefan Hajnoczi <stefa...@redhat.com> wrote: > On Thu, Apr 02, 2015 at 07:50:44PM +0200, Paolo Bonzini wrote: >> 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 <we...@cn.fujitsu.com> >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> >> --- >> hw/block/dataplane/virtio-blk.c | 3 +-- >> hw/block/virtio-blk.c | 13 ++++++++++++- >> include/hw/virtio/virtio-blk.h | 1 + >> 3 files changed, 14 insertions(+), 3 deletions(-) > > This also changes len for VIRTIO_BLK_T_SCSI_CMD and VIRTIO_BLK_T_GET_ID. > The Linux virtio_blk.ko and Windows viostor drivers ignore the value > anyway so what's the worst thing that could happen? :) > > Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
I'd like to merge Paolo's patch for QEMU 2.3-rc3. It ensures that virtio-blk unmaps and dirties "in" buffers correctly. The Message-Id for the patch I'm referring to is <1427997044-392-1-git-send-email-pbonz...@redhat.com>. Any objections? Speak now if it's critical, otherwise please send follow-up patches for QEMU 2.4. Stefan