It's a big difference if a map is flushed from DM (changing kernel state) or just removed from internal multipathd tables. Convey this information in log messages. Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/structs_vec.c | 6 +++--- libmultipath/structs_vec.h | 3 ++- multipathd/main.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index a0b69ce5..4667e34f 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -102,14 +102,14 @@ void orphan_path(struct path *pp, const char *reason) pp->fd = -1; } -void orphan_paths(vector pathvec, struct multipath *mpp) +void orphan_paths(vector pathvec, struct multipath *mpp, const char *reason) { int i; struct path * pp; vector_foreach_slot (pathvec, pp, i) { if (pp->mpp == mpp) { - orphan_path(pp, "map flushed"); + orphan_path(pp, reason); } } } @@ -122,7 +122,7 @@ remove_map(struct multipath * mpp, struct vectors * vecs, int purge_vec) /* * clear references to this map */ - orphan_paths(vecs->pathvec, mpp); + orphan_paths(vecs->pathvec, mpp, "map removed internally"); if (purge_vec && (i = find_slot(vecs->mpvec, (void *)mpp)) != -1) diff --git a/libmultipath/structs_vec.h b/libmultipath/structs_vec.h index f7777aaf..f8b9f63e 100644 --- a/libmultipath/structs_vec.h +++ b/libmultipath/structs_vec.h @@ -14,7 +14,8 @@ struct vectors { void enter_recovery_mode(struct multipath *mpp); int adopt_paths (vector pathvec, struct multipath * mpp); -void orphan_paths (vector pathvec, struct multipath * mpp); +void orphan_paths(vector pathvec, struct multipath *mpp, + const char *reason); void orphan_path (struct path * pp, const char *reason); int verify_paths(struct multipath * mpp, struct vectors * vecs); diff --git a/multipathd/main.c b/multipathd/main.c index 0c248046..77126f9e 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -655,7 +655,7 @@ flush_map(struct multipath * mpp, struct vectors * vecs, int nopaths) condlog(2, "%s: map flushed", mpp->alias); } - orphan_paths(vecs->pathvec, mpp); + orphan_paths(vecs->pathvec, mpp, "map flushed"); remove_map_and_stop_waiter(mpp, vecs); return 0; -- 2.19.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel