From: Martin Wilck <mwilck@xxxxxxxx> This is anologous to 1f96269 ("multipathd: fix mpp->hwe handling on path removal") f6839eb ("multipathd: fix mpp->hwe handling when paths are freed") When paths are removed from a map, we need to make sure that mpp->hwe doesn't become stale. Reported-by: Lixiaokeng <lixiaokeng@xxxxxxxxxx> Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/structs_vec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index 0a73d2a..0519996 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -256,6 +256,8 @@ void sync_paths(struct multipath *mpp, vector pathvec) } if (!found) { condlog(3, "%s dropped path %s", mpp->alias, pp->dev); + if (mpp->hwe == pp->hwe) + mpp->hwe = NULL; vector_del_slot(mpp->paths, i--); orphan_path(pp, "path removed externally"); } @@ -263,6 +265,8 @@ void sync_paths(struct multipath *mpp, vector pathvec) update_mpp_paths(mpp, pathvec); vector_foreach_slot (mpp->paths, pp, i) pp->mpp = mpp; + if (mpp->hwe == NULL) + extract_hwe_from_path(mpp); } int -- 2.26.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel