v1: https://lists.gnu.org/archive/html/qemu-devel/2020-07/msg00269.html v2: https://lists.gnu.org/archive/html/qemu-devel/2020-07/msg00589.html v3: https://lists.gnu.org/archive/html/qemu-devel/2020-07/msg07098.html v4: https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg05334.html
See patch commit messages for rationale Ideally we would convert other callers of qemu_open to use qemu_open_err, and eventually remove qemu_open, renaming qemu_open_err back to qemu_open. Given soft freeze is just days away though, I'm hoping this series is simple enough to get into this release, leaving bigger cleanup for later. Improved in v5: - Drop reporting of flags in failed open call - Split O_CLOEXEC handling off into separate helper - Refactor monitor FD set APIs to simplify their use Improved in v4: - Use assert() for programmer mistakes - Split second patch into three distinct parts - Misc typos - Improve commit message Improved in v3: - Re-arrange the patches series, so that the conversion to Error takes place first, then the improve O_DIRECT reporting - Rename existing method to qemu_open_old - Use a pair of new methods qemu_open + qemu_create to improve arg checking Improved in v2: - Mention that qemu_open_err is preferred over qemu_open - Get rid of obsolete error_report call - Simplify O_DIRECT handling - Fixup iotests for changed error message text Daniel P. Berrangé (8): monitor: simplify functions for getting a dup'd fdset entry util: split off a helper for dealing with O_CLOEXEC flag util: rename qemu_open() to qemu_open_old() util: refactor qemu_open_old to split off variadic args handling util: add Error object for qemu_open_internal error reporting util: introduce qemu_open and qemu_create with error reporting util: give a specific error message when O_DIRECT doesn't work block/file: switch to use qemu_open/qemu_create for improved errors accel/kvm/kvm-all.c | 2 +- backends/rng-random.c | 2 +- backends/tpm/tpm_passthrough.c | 8 +-- block/file-posix.c | 16 ++--- block/file-win32.c | 5 +- block/vvfat.c | 5 +- chardev/char-fd.c | 2 +- chardev/char-pipe.c | 6 +- chardev/char.c | 2 +- dump/dump.c | 2 +- hw/s390x/s390-skeys.c | 2 +- hw/usb/host-libusb.c | 2 +- hw/vfio/common.c | 4 +- include/monitor/monitor.h | 3 +- include/qemu/osdep.h | 9 ++- io/channel-file.c | 2 +- monitor/misc.c | 58 ++++++++---------- net/vhost-vdpa.c | 2 +- os-posix.c | 2 +- qga/channel-posix.c | 4 +- qga/commands-posix.c | 6 +- stubs/fdset.c | 8 +-- target/arm/kvm.c | 2 +- ui/console.c | 2 +- util/osdep.c | 104 +++++++++++++++++++++++---------- util/oslib-posix.c | 2 +- 26 files changed, 148 insertions(+), 114 deletions(-) -- 2.26.2