All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Wilck <mwilck@suse.com>
To: Benjamin Marzinski <bmarzins@redhat.com>,
	device-mapper development <dm-devel@redhat.com>
Subject: Re: [RFC PATCH 1/5] libmultipath: move remove_map waiter code to multipathd
Date: Sat, 10 Feb 2018 17:15:05 +0100	[thread overview]
Message-ID: <1518279305.2937.26.camel@suse.com> (raw)
In-Reply-To: <1518239251-29392-2-git-send-email-bmarzins@redhat.com>

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@redhat.com>

Reviewed-by: Martin Wilck <mwilck@suse.com>

> ---
>  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@suse.com>, 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@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

  reply	other threads:[~2018-02-10 16:15 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-10  5:07 [RFC PATCH 0/5] alternate dmevents waiter method Benjamin Marzinski
2018-02-10  5:07 ` [RFC PATCH 1/5] libmultipath: move remove_map waiter code to multipathd Benjamin Marzinski
2018-02-10 16:15   ` Martin Wilck [this message]
2018-02-10  5:07 ` [RFC PATCH 2/5] move waiter code from libmultipath " Benjamin Marzinski
2018-02-10 16:16   ` Martin Wilck
2018-02-10  5:07 ` [RFC PATCH 3/5] call start_waiter_thread() before setup_multipath() Benjamin Marzinski
2018-02-10 17:43   ` Martin Wilck
2018-02-10  5:07 ` [RFC PATCH 4/5] libmultipath: add helper functions Benjamin Marzinski
2018-02-10 19:12   ` Martin Wilck
2018-02-10  5:07 ` [RFC PATCH 5/5] multipathd: RFC add new polling dmevents waiter thread Benjamin Marzinski
2018-02-10 19:55   ` Martin Wilck
2018-02-12 23:18     ` Benjamin Marzinski
2018-02-13  1:13       ` Alasdair G Kergon
2018-02-13  8:50       ` Martin Wilck
2018-02-13 16:49         ` Benjamin Marzinski
2018-02-13 19:55           ` Martin Wilck
2018-03-08 19:59 ` [RFC PATCH 0/5] alternate dmevents waiter method Xose Vazquez Perez
2018-03-08 20:08   ` Xose Vazquez Perez
2018-03-09 15:59     ` Benjamin Marzinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1518279305.2937.26.camel@suse.com \
    --to=mwilck@suse.com \
    --cc=bmarzins@redhat.com \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.