On Fri, Nov 15, 2019 at 02:41:46PM +0000, Martin Wilck wrote: > From: Martin Wilck <mwilck@xxxxxxxx> > > This function is useful elsewhere, too. No code changes except > for changing the linkage. > Reviewed-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> > Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> > --- > libmultipath/structs_vec.c | 30 ++++++++++++++++++++++++++++++ > libmultipath/structs_vec.h | 1 + > multipathd/main.c | 30 ------------------------------ > 3 files changed, 31 insertions(+), 30 deletions(-) > > diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c > index 6991f9ac..fbe97662 100644 > --- a/libmultipath/structs_vec.c > +++ b/libmultipath/structs_vec.c > @@ -308,6 +308,36 @@ void enter_recovery_mode(struct multipath *mpp) > mpp->alias, mpp->no_path_retry); > } > > +void set_no_path_retry(struct multipath *mpp) > +{ > + char is_queueing = 0; > + > + mpp->nr_active = pathcount(mpp, PATH_UP) + pathcount(mpp, PATH_GHOST); > + if (mpp->features && strstr(mpp->features, "queue_if_no_path")) > + is_queueing = 1; > + > + switch (mpp->no_path_retry) { > + case NO_PATH_RETRY_UNDEF: > + break; > + case NO_PATH_RETRY_FAIL: > + if (is_queueing) > + dm_queue_if_no_path(mpp->alias, 0); > + break; > + case NO_PATH_RETRY_QUEUE: > + if (!is_queueing) > + dm_queue_if_no_path(mpp->alias, 1); > + break; > + default: > + if (mpp->nr_active > 0) { > + mpp->retry_tick = 0; > + if (!is_queueing) > + dm_queue_if_no_path(mpp->alias, 1); > + } else if (is_queueing && mpp->retry_tick == 0) > + enter_recovery_mode(mpp); > + break; > + } > +} > + > void > sync_map_state(struct multipath *mpp) > { > diff --git a/libmultipath/structs_vec.h b/libmultipath/structs_vec.h > index f8b9f63e..d3219278 100644 > --- a/libmultipath/structs_vec.h > +++ b/libmultipath/structs_vec.h > @@ -11,6 +11,7 @@ struct vectors { > vector mpvec; > }; > > +void set_no_path_retry(struct multipath *mpp); > void enter_recovery_mode(struct multipath *mpp); > > int adopt_paths (vector pathvec, struct multipath * mpp); > diff --git a/multipathd/main.c b/multipathd/main.c > index bb5c1f1d..a21d96e4 100644 > --- a/multipathd/main.c > +++ b/multipathd/main.c > @@ -409,36 +409,6 @@ set_multipath_wwid (struct multipath * mpp) > dm_get_uuid(mpp->alias, mpp->wwid, WWID_SIZE); > } > > -static void set_no_path_retry(struct multipath *mpp) > -{ > - char is_queueing = 0; > - > - mpp->nr_active = pathcount(mpp, PATH_UP) + pathcount(mpp, PATH_GHOST); > - if (mpp->features && strstr(mpp->features, "queue_if_no_path")) > - is_queueing = 1; > - > - switch (mpp->no_path_retry) { > - case NO_PATH_RETRY_UNDEF: > - break; > - case NO_PATH_RETRY_FAIL: > - if (is_queueing) > - dm_queue_if_no_path(mpp->alias, 0); > - break; > - case NO_PATH_RETRY_QUEUE: > - if (!is_queueing) > - dm_queue_if_no_path(mpp->alias, 1); > - break; > - default: > - if (mpp->nr_active > 0) { > - mpp->retry_tick = 0; > - if (!is_queueing) > - dm_queue_if_no_path(mpp->alias, 1); > - } else if (is_queueing && mpp->retry_tick == 0) > - enter_recovery_mode(mpp); > - break; > - } > -} > - > int __setup_multipath(struct vectors *vecs, struct multipath *mpp, > int reset) > { > -- > 2.24.0 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel