From: Martin Wilck <mwilck@xxxxxxxx> The bulk of this patch set comes out of my attempts to solve https://github.com/opensvc/multipath-tools/issues/73 and the insight that aio memory can't be freed unless either io_getevents() returns the iocb in question as finished, or io_destroy() has returned. aio handling in multipathd needs more work, because io_destroy() may block for a long time, and we must avoid to block, but I would like to postpone that to a later patch set (I plan to add a generic aio framework to libmultipath which could then be used by both the directio checker and the io_err_stat code, but this isn't finished yet). The last two patches are improvements to multipathd's systemd service and kernel module loading logic. They are unrelated to the others. Martin Wilck (6): libmultipath: reduce log level of directio messages libmultipath: directio: don't reset ct->running after io_cancel() libmultipath: io_err_stat: don't free aio memory before completion libmultipath: io_err_stat: call io_destroy() before free_io_err_pathvec() multipath-tools: systemd: require modprobe@dm_multipath.service libmpathutil: remove systemd_service_enabled() libmpathutil/libmpathutil.version | 17 +++------ libmpathutil/util.c | 58 ------------------------------- libmpathutil/util.h | 1 - libmultipath/checkers/directio.c | 21 ++++------- libmultipath/io_err_stat.c | 28 +++++++++------ libmultipath/valid.c | 16 ++------- multipath/Makefile | 2 -- multipath/modules-load.conf | 3 -- multipathd/multipathd.service | 2 ++ tests/directio.c | 10 +----- tests/valid.c | 24 ++----------- 11 files changed, 35 insertions(+), 147 deletions(-) delete mode 100644 multipath/modules-load.conf -- 2.42.0