Am 11.07.2019 um 21:58 hat Max Reitz geschrieben: > If a protocol driver does not support truncation, we call fall back to > effectively not doing anything if the new size is less than the actual > file size. This is what we have been doing for some host device drivers > already.
Specifically, we're doing it for drivers that access a fixed-size image, i.e. block devices rather than regular files. We don't want to do this for drivers where the file size could be changed, but just didn't implement it. So I would suggest calling the function more specifically something like bdrv_co_truncate_blockdev(), and not using it as an automatic fallback in bdrv_co_truncate(), but just make it the BlockDriver.bdrv_co_truncate implementation for those drivers where it makes sense. And of course, we only need these fake implementations because qemu-img (or .bdrv_co_create_opts) always wants to create the protocol level. If we could avoid this, then we wouldn't need any of this. Kevin