From: Martin Wilck <mwilck@xxxxxxxx> 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. Reviewed-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/print.c | 21 +++++++++++++++++++++ libmultipath/structs.h | 1 + 2 files changed, 22 insertions(+) diff --git a/libmultipath/print.c b/libmultipath/print.c index d2ef010..e61349f 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 c21d1ed..c0f8929 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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel