This should help us find cases where pp->mpp isn't properly set to begin with.
Signed-off-by: Martin Wilck <[email protected]> --- libmultipath/structs_vec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index 7185038..9384de0 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -639,7 +639,11 @@ void sync_paths(struct multipath *mpp, vector pathvec) check_removed_paths(mpp, pathvec); update_mpp_paths(mpp, pathvec); vector_foreach_slot (mpp->paths, pp, i) - pp->mpp = mpp; + if (pp->mpp != mpp) { + condlog(2, "%s: %s: mpp of %s was %p, fixing to %p", + __func__, mpp->alias, pp->dev_t, pp->mpp, mpp); + pp->mpp = mpp; + }; } /* This function may free paths. See check_removed_paths(). */ -- 2.52.0
