Hi, Unaligned images don’t work so well with O_DIRECT:
$ echo > foo $ qemu-img map --image-opts driver=file,filename=foo,cache.direct=on Offset Length Mapped to File qemu-img: block/io.c:2093: bdrv_co_block_status: Assertion `*pnum && QEMU_IS_ALIGNED(*pnum, align) && align > offset - aligned_offset' failed. [1] 10954 abort (core dumped) qemu-img map --image-opts driver=file,filename=foo,cache.direct=on (compare https://bugzilla.redhat.com/show_bug.cgi?id=1588356) This is because the request_alignment is 512 (in my case), but the EOF is not aligned accordingly, so raw_co_block_status() returns an aligned *pnum. I suppose having an unaligned tail is not so bad and maybe we can just adjust the assertion accordingly. On the other hand, this has been broken for a while. Does it even make sense to use O_DIRECT with unaligned images? Shouldn’t we just reject them outright? Max
signature.asc
Description: OpenPGP digital signature