On Wed, 2025-04-02 at 19:13 -0400, Benjamin Marzinski wrote:
> I ran into an issue where multipathd wasn't tracking a multipath
> device that was created by the multipath command. It turns out that
> if
> multipathd fully initialized a path device, and that device later
> goes offline and then a multipath device that could use that path is
> created by multipath, multipathd will attempt to reload the device
> to use the offline path, which will fail. This will cause it to not
> track the multipath device at all.
> 
> The first patch fixes this. The second patch is prep work. The third
> patch allows mutipathd to track these offline paths that should
> belong
> to a device, and add them to device once they come back online. The
> third fourth is just a cleanup.
> 
> changes from v2
> - 0002: New patch to avoid duplicating the code to determine if we
>         can recheck the paths wwid.
> - 0003: Always recheck WWID when path comes back online if capable
>         (suggested by Martin Wilck). Fixed holdover code from v1 to
>         set pp->initialized = INIT_OK when the path came back online.
>         Fixed typo in documentation.
> 
> changes from v1
> - 0002: Switch from tracking this state with pp->initialized to a new
>         variable, as suggested by Martin Wilck. To make is so that
>         multipathd can still show paths in this state without adding
>         a new wildcard for it, add [offline] as a possible output for
>         the %m (multipath device) path wildcard, for paths that
>         couldn't be added to a multipath device because they are
>         offline. Also constify a function parameter and add an
>         explanitory comment as suggested by Martin.
> 
> Benjamin Marzinski (4):
>   multipathd: monitor new multipath dev even if we can't update it
>   libmultipath: add helper function check_path_wwid_change
>   multipathd: re-add paths skipped because they were offline
>   multipathd: don't update paths in INIT_MISSING_UDEV
> 
>  libmultipath/discovery.c          | 12 ++++++-
>  libmultipath/discovery.h          |  2 +-
>  libmultipath/libmultipath.version |  5 +++
>  libmultipath/print.c              |  5 ++-
>  libmultipath/propsel.c            |  4 +--
>  libmultipath/structs.h            |  1 +
>  libmultipath/structs_vec.c        |  5 +++
>  multipathd/main.c                 | 59
> +++++++++++++++++++++++++++++--
>  multipathd/multipathd.8.in        |  5 +--
>  9 files changed, 87 insertions(+), 11 deletions(-)

For the series:
Reviewed-by: Martin Wilck <mwi...@suse.com>



Reply via email to