Am 14.10.2019 um 10:15 hat Alberto Garcia geschrieben: > The BDRV_REQ_NO_FALLBACK flag means that an operation should only be > performed if it can be offloaded or otherwise performed efficiently. > > However a misaligned write request requires a RMW so we should return > an error and let the caller decide how to proceed. > > This hits an assertion since commit c8bb23cbdb if the required > alignment is larger than the cluster size: > > qemu-img create -f qcow2 -o cluster_size=2k img.qcow2 4G > qemu-io -c "open -o driver=qcow2,file.align=4k blkdebug::img.qcow2" \ > -c 'write 0 512' > qemu-io: block/io.c:1127: bdrv_driver_pwritev: Assertion `!(flags & > BDRV_REQ_NO_FALLBACK)' failed. > Aborted > > The reason is that when writing to an unallocated cluster we try to > skip the copy-on-write part and zeroize it using BDRV_REQ_NO_FALLBACK > instead, resulting in a write request that is too small (2KB cluster > size vs 4KB required alignment). > > Signed-off-by: Alberto Garcia <[email protected]>
Thanks, applied to the block branch. Kevin
