Daniel P. Berrangé <berra...@redhat.com> writes: > Currently at startup if using cache=none on a filesystem lacking > O_DIRECT such as tmpfs, at startup QEMU prints > > qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: file system may not > support O_DIRECT > qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Could not open > '/tmp/foo.img': Invalid argument > > while at QMP level the hint is missing, so QEMU reports just > > "error": { > "class": "GenericError", > "desc": "Could not open '/tmp/foo.img': Invalid argument" > } > > which is close to useless for the end user trying to figure out what > they did wrong. > > With this change at startup QEMU prints > > qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Unable to open > '/tmp/foo.img' flags 0x4000: filesystem does not support O_DIRECT > > while at the QMP level QEMU reports a massively more informative > > "error": { > "class": "GenericError", > "desc": "Unable to open '/tmp/foo.img' flags 0x4002: filesystem does not > support O_DIRECT" > } > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
Subject promises slightly more than the patch actually provides: block/vvfat.c:1355: int fd = qemu_open(mapping->path, O_RDONLY | O_BINARY | O_LARGEFILE); block/vvfat.c:2516: fd = qemu_open(mapping->path, O_RDWR | O_CREAT | O_BINARY, 0666); If you'd rather not touch block/vvfat.c (I understand), consider tweaking the subject to say block/file: ...