I found an ABBA deadlock in the io_err_stat marginal path code, and in the process of fixing it, noticed a potential crash on shutdown. This patchset addresses both of the issues. Changes from v1: 0002: use cleanup_mutex instead of cleanup_unlock as suggested by Martin 0003: add pthread_testcancel and use cleanup_mutex instead of cleanup_unlock as suggested by Martin. Also, make tmp_pathvec a constant pointer, since it should always equal _pathvec. 0004-0006 are new patches to deal with io_err_stat issues from Martin's review Benjamin Marzinski (6): libmultipath: make find_err_path_by_dev() static multipathd: avoid io_err_stat crash during shutdown multipathd: avoid io_err_stat ABBA deadlock multipathd: use get_monotonic_time() in io_err_stat code multipathd: combine free_io_err_stat_path and destroy_directio_ctx multipathd: cleanup logging for marginal paths libmultipath/io_err_stat.c | 216 ++++++++++++++++--------------------- multipathd/main.c | 25 +++-- 2 files changed, 105 insertions(+), 136 deletions(-) -- 2.17.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel