On Fri, 2018-02-09 at 23:07 -0600, Benjamin Marzinski wrote: > Only multipathd needs to worry about the multipath waiter code. There > is > no point in having remove_map_and_stop_waiter() or > remove_maps_and_stop_waiters() in libmultipath, since they should > never > be use outside of multipathd. > > Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> Reviewed-by: Martin Wilck <mwilck@xxxxxxxx> > --- > libmultipath/structs_vec.c | 40 +++++------------------------------- > ---- > libmultipath/structs_vec.h | 2 -- > multipathd/main.c | 23 +++++++++++++++++++++++ > 3 files changed, 28 insertions(+), 37 deletions(-) > > diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c > index 0de2221..abf5327 100644 > --- a/libmultipath/structs_vec.c > +++ b/libmultipath/structs_vec.c > @@ -116,25 +116,16 @@ set_multipath_wwid (struct multipath * mpp) > dm_get_uuid(mpp->alias, mpp->wwid); > } > > -#define KEEP_WAITER 0 > -#define STOP_WAITER 1 > #define PURGE_VEC 1 > > -static void > -_remove_map (struct multipath * mpp, struct vectors * vecs, > - int stop_waiter, int purge_vec) > +void > +remove_map(struct multipath * mpp, struct vectors * vecs, int > purge_vec) > { > int i; > > condlog(4, "%s: remove multipath map", mpp->alias); > > /* > - * stop the DM event waiter thread > - */ > - if (stop_waiter) > - stop_waiter_thread(mpp, vecs); > - > - /* > * clear references to this map > */ > orphan_paths(vecs->pathvec, mpp); > @@ -149,19 +140,8 @@ _remove_map (struct multipath * mpp, struct > vectors * vecs, > free_multipath(mpp, KEEP_PATHS); > } > > -void remove_map(struct multipath *mpp, struct vectors *vecs, int > purge_vec) > -{ > - _remove_map(mpp, vecs, KEEP_WAITER, purge_vec); > -} > - > -void remove_map_and_stop_waiter(struct multipath *mpp, struct > vectors *vecs, > - int purge_vec) > -{ > - _remove_map(mpp, vecs, STOP_WAITER, purge_vec); > -} > - > -static void > -_remove_maps (struct vectors * vecs, int stop_waiter) > +void > +remove_maps(struct vectors * vecs) > { > int i; > struct multipath * mpp; > @@ -170,7 +150,7 @@ _remove_maps (struct vectors * vecs, int > stop_waiter) > return; > > vector_foreach_slot (vecs->mpvec, mpp, i) { > - _remove_map(mpp, vecs, stop_waiter, 1); > + remove_map(mpp, vecs, 1); > i--; > } > > @@ -178,16 +158,6 @@ _remove_maps (struct vectors * vecs, int > stop_waiter) > vecs->mpvec = NULL; > } > > -void remove_maps(struct vectors *vecs) > -{ > - _remove_maps(vecs, KEEP_WAITER); > -} > - > -void remove_maps_and_stop_waiters(struct vectors *vecs) > -{ > - _remove_maps(vecs, STOP_WAITER); > -} > - > void > extract_hwe_from_path(struct multipath * mpp) > { > diff --git a/libmultipath/structs_vec.h b/libmultipath/structs_vec.h > index b81413b..d6e17bb 100644 > --- a/libmultipath/structs_vec.h > +++ b/libmultipath/structs_vec.h > @@ -27,9 +27,7 @@ int update_multipath_strings (struct multipath > *mpp, vector pathvec, > void extract_hwe_from_path(struct multipath * mpp); > > void remove_map (struct multipath * mpp, struct vectors * vecs, int > purge_vec); > -void remove_map_and_stop_waiter (struct multipath * mpp, struct > vectors * vecs, int purge_vec); > void remove_maps (struct vectors * vecs); > -void remove_maps_and_stop_waiters (struct vectors * vecs); > > void sync_map_state (struct multipath *); > int update_map (struct multipath *mpp, struct vectors *vecs); > diff --git a/multipathd/main.c b/multipathd/main.c > index 7ac59d9..72c3c2f 100644 > --- a/multipathd/main.c > +++ b/multipathd/main.c > @@ -288,6 +288,29 @@ switch_pathgroup (struct multipath * mpp) > mpp->alias, mpp->bestpg); > } > > +static void > +remove_map_and_stop_waiter(struct multipath *mpp, struct vectors > *vecs, > + int purge_vec) > +{ > + stop_waiter_thread(mpp, vecs); > + remove_map(mpp, vecs, purge_vec); > +} > + > +static void > +remove_maps_and_stop_waiters(struct vectors *vecs) > +{ > + int i; > + struct multipath * mpp; > + > + if (!vecs) > + return; > + > + vector_foreach_slot(vecs->mpvec, mpp, i) > + stop_waiter_thread(mpp, vecs); > + > + remove_maps(vecs); > +} > + > static int > coalesce_maps(struct vectors *vecs, vector nmpv) > { -- Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107 SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel