Message ID | 20250402231322.3044064-1-bmarzins@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | fix issue of multipathd not tracking device | expand |
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 <mwilck@suse.com>