On Thu, Oct 03, 2024 at 10:23:57PM +0200, Martin Wilck wrote: > On Thu, 2024-09-12 at 17:49 -0400, Benjamin Marzinski wrote: > > Split out the code that updates a path's state and sets up the next > > check time into its own function, update_path(). > > > > Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> > > --- > > multipathd/main.c | 31 ++++++++++++++++++++++--------- > > 1 file changed, 22 insertions(+), 9 deletions(-) > > > > diff --git a/multipathd/main.c b/multipathd/main.c > > index 9319751e..8bfb166d 100644 > > --- a/multipathd/main.c > > +++ b/multipathd/main.c > > @@ -2390,6 +2390,7 @@ sync_mpp(struct vectors * vecs, struct > > multipath *mpp, unsigned int ticks) > > } > > > > enum check_path_return { > > + CHECK_PATH_STARTED, > > CHECK_PATH_CHECKED, > > CHECK_PATH_SKIPPED, > > CHECK_PATH_REMOVED, > > @@ -2629,13 +2630,10 @@ update_path_state (struct vectors * vecs, > > struct path * pp) > > } > > > > static int > > -check_path (struct vectors * vecs, struct path * pp, unsigned int > > ticks, > > - time_t start_secs) > > +check_path (struct path * pp, unsigned int ticks) > > { > > - int r; > > - unsigned int adjust_int, checkint, max_checkint; > > + unsigned int checkint; > > struct config *conf; > > - time_t next_idx, goal_idx; > > > > if (pp->initialized == INIT_REMOVED) > > return CHECK_PATH_SKIPPED; > > @@ -2647,8 +2645,6 @@ check_path (struct vectors * vecs, struct path > > * pp, unsigned int ticks, > > > > conf = get_multipath_config(); > > checkint = conf->checkint; > > - max_checkint = conf->max_checkint; > > - adjust_int = conf->adjust_int; > > put_multipath_config(conf); > > > > After this change, we set only checking in this RCU critical section, > and checkint is only used in the if clause below. Perhaps move the > critical section into the if block? Makes sense. Sure. -Ben > Martin >