From: Martin Wilck <mwilck@xxxxxxxx> Hi Ben, hi Christophe, hi Guozhonghua, here's my new take at the race condition issue reported by Guozhonghua. This patch set is meant as an alternative to Ben's recent series "fix looping when reconfigure is delayed". I believe that by removing the special case from __post_config_state(), the state change logic becomes somewhat easier to understand again. I hope I got it right this time. Changes v1->v2: 04: reset __delayed_reconfig if no delay needed (Ben) only call __post_config_state in IDLE state (Ben) 06/07: unblock reconfigure if maps are removed, as suggested by Ben 08-11: minor logging fixes I found useful Regards Martin Martin Wilck (11): multipathd: child(): remove superfluous if condition multipathd: set reload_type in when calling reconfigure() multipathd: avoid busy loop in child() for delayed reconfigure multipathd: reset __delayed_reconfig from ev_add_map() multipathd: remove volatile qualifier from running_state libmultipath: add callback for remove_map() multipathd: use remove_map_callback for delayed reconfigure libmultipath: warn only once about deprecated options multipathd: improve logging of reconfigure() multipathd: log state changes multipathd: remove unhelpful startup / shutdown messages libmultipath/dict.c | 15 ++- libmultipath/libmultipath.version | 3 +- libmultipath/structs_vec.c | 6 ++ multipathd/main.c | 172 ++++++++++++++++-------------- 4 files changed, 109 insertions(+), 87 deletions(-) -- 2.35.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel