As a spin-off from the previous multifd series, this series offers a basic API for virfile.c to deal with reading and writing files opened with O_DIRECT. It applies this new API in the virFileDiskCopy code currently used for iohelper, and reworks the saveimage code and on-disk lengths to be O_DIRECT friendly. This series is also available at: https://gitlab.com/hw-claudio/libvirt.git "directio" Gitlab successful pipeline is at: https://gitlab.com/hw-claudio/libvirt/-/pipelines/546635704 Thank you for your feedback, Claudio Claudio Fontana (5): virfile: introduce virFileDirect APIs virfile: use virFileDirect API in runIOCopy qemu: saveimage: rework image read/write to be O_DIRECT friendly qemu: saveimage: assume future formats will also support compression virfile: virFileDiskCopy: prepare for O_DIRECT files without wrapper src/libvirt_private.syms | 8 + src/qemu/qemu_saveimage.c | 269 ++++++++++++++++++++------------ src/qemu/qemu_saveimage.h | 20 ++- src/util/virfile.c | 316 +++++++++++++++++++++++++++++++++----- src/util/virfile.h | 11 ++ 5 files changed, 476 insertions(+), 148 deletions(-) -- 2.26.2