On Thu, 1 Sep 2011 16:31:08 +0200 Kevin Wolf <kw...@redhat.com> wrote:
> This fixes a couple of issues with the coroutine-based block layer regarding > error handling. > > Luiz, can you please try if this fixes your bug? It fixes the reported bug, but it seems that there's another issue. I'll copy & paste the test case here for our convenience: 1. Create a 100MB logical volume and create a 200MB qcow2 image on it 2. Run qemu with the following command-line: # qemu -drive file=disks/test.img,if=virtio,cache=writeback,aio=native \ -drive file=/dev/vg_doriath/kvmtest,if=virtio -enable-kvm -m 1G \ -monitor stdio -netdev type=tap,id=guest0,script=qemu-ifup-switch \ -device virtio-net-pci,netdev=guest0 -cpu host 3. Log into the guest and run dd to write 150MB on /dev/vdb 4. The VM will stop 5. Assign extra space to the logical volume, say 200MB 6. Type 'cont' in the monitor If I assign chunks of 50MB each time the VM stop in steps 4 and 5, I have to do it several times (totalizing a logical volume size of 400MB), so that dd is able to finish. Testing with commit b96e92470 works as expected, I extend the lv twice with 50MB (totalizing 200MB) and dd finishes normally. Small note: I'm writing 157MB in step 3.