[dm-devel] [PATCH] libmultipath: add path wildcard "%I" for init state

Benjamin Marzinski bmarzins at redhat.com
Fri Nov 5 23:04:15 UTC 2021


On Fri, Nov 05, 2021 at 12:03:12PM +0100, mwilck at suse.com wrote:
> From: Martin Wilck <mwilck at suse.com>
Reviewed-by: Benjamin Marzinski <bmarzins at redhat.com>
> 
> Enable printing pp->initialized with 'multipathd show paths format "%I"'.
> This is supposed to go on top of Ben's "multipathd: remove udev settle 
> dependency" series, to simplify checking multipathd's state.
> 
> ---
>  libmultipath/print.c   | 21 +++++++++++++++++++++
>  libmultipath/structs.h |  1 +
>  2 files changed, 22 insertions(+)
> 
> diff --git a/libmultipath/print.c b/libmultipath/print.c
> index 2fb9f4e..b5b9905 100644
> --- a/libmultipath/print.c
> +++ b/libmultipath/print.c
> @@ -504,6 +504,26 @@ snprint_dm_path_state (struct strbuf *buff, const struct path * pp)
>  	}
>  }
>  
> +static int snprint_initialized(struct strbuf *buff, const struct path * pp)
> +{
> +	static const char *init_state_name[] = {
> +		[INIT_NEW] = "new",
> +		[INIT_FAILED] = "failed",
> +		[INIT_MISSING_UDEV] = "udev-missing",
> +		[INIT_REQUESTED_UDEV] = "udev-requested",
> +		[INIT_OK] = "ok",
> +		[INIT_REMOVED] = "removed",
> +		[INIT_PARTIAL] = "partial",
> +	};
> +	const char *str;
> +
> +	if (pp->initialized < INIT_NEW || pp->initialized >= __INIT_LAST)
> +		str = "undef";
> +	else
> +		str = init_state_name[pp->initialized];
> +	return append_strbuf_str(buff, str);
> +}
> +
>  static int
>  snprint_vpr (struct strbuf *buff, const struct path * pp)
>  {
> @@ -804,6 +824,7 @@ struct path_data pd[] = {
>  	{'g', "vpd page data", 0, snprint_path_vpd_data},
>  	{'0', "failures",      0, snprint_path_failures},
>  	{'P', "protocol",      0, snprint_path_protocol},
> +	{'I', "init_st",       0, snprint_initialized},
>  	{0, NULL, 0 , NULL}
>  };
>  
> diff --git a/libmultipath/structs.h b/libmultipath/structs.h
> index 69409fd..d8c24b5 100644
> --- a/libmultipath/structs.h
> +++ b/libmultipath/structs.h
> @@ -206,6 +206,7 @@ enum initialized_states {
>  	 * change uevent is received.
>  	 */
>  	INIT_PARTIAL,
> +	__INIT_LAST,
>  };
>  
>  enum prkey_sources {
> -- 
> 2.33.1




More information about the dm-devel mailing list