Commit 8d17adf34f501ded65a106572740760f0a75577c "block: remove support for using "file" driver with block/char devices" explicitly forbids usage of file driver for block devices.
But _why_? Hasn't we always used file for everything on *nix? And what's the _actual_ difference between file and host_device? Please note this change has been added to qemu long before libvirt has been adapted (I guess there's no released libvirt can be used with qemu 6.0+). Why? Thanks, /mjt