All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Marzinski <bmarzins@redhat.com>
To: mwilck@suse.com
Cc: dm-devel@redhat.com
Subject: Re: [PATCH 00/74] multipath-tools series part V: removed path handling
Date: Mon, 20 Jul 2020 16:19:17 -0500	[thread overview]
Message-ID: <20200720211917.GG11089@octiron.msp.redhat.com> (raw)
In-Reply-To: <20200709105145.9211-1-mwilck@suse.com>

On Thu, Jul 09, 2020 at 12:51:24PM +0200, mwilck@suse.com wrote:
> From: Martin Wilck <mwilck@suse.com>
> 
> Hi Christophe, hi Ben,
> 
> This is part V of a larger patch series for multipath-tools I've been preparing.
> It's based on the previously submitted part IV.
> 
> The full series will also be available here:
> https://github.com/mwilck/multipath-tools/tree/ups/submit-2007
> 
> There are tags in that repo for each part of the series.
> This part is tagged "submit-200709-5".


For the part, with the exception of patches 61,63,64,65,66 & 71
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>

> 
> The series addresses several issues with missing, unintialized, and removed
> paths. The motivation was that I strongly dislike the side effects of
> disassemble_map(), adding paths and setting WWIDs while parsing map
> parameters. IMO this has always been a layering violation. This patch set adds
> a new function dedicated to handling paths which have not been detected via
> udev but are present as members of dm maps. That makes it much easier to
> track and improve the logic applied when such devices are detected.
> 
> I believe that the new logic will also fix the issue recently reported by
> Chongyun ("libmultipath/dmparser: add missing path with good status when sync
> state with dm kernel"). At least, the approach is very similar, although
> the call to pathinfo() for new devices now happens in update_pathvec_from_dm()
> rather than in disassemble_map().
> 
> The patch set also gets rid of the "is_daemon" argument for disassemble_map(),
> causing semantics in daemon and non-daemon mode. The reason for this parameter
> goes way back into history; it was avoiding to re-add manually removed paths
> because they were still showing up in maps. But OTOH we must add missing
> devices which we've failed to detect. The patch set handles this by tracking
> the state of "being removed" as a new init state, and only actually removing
> the paths from pathvec when they don't show up in maps any more.
> 
> Regards
> Martin
> 
> Martin Wilck (21):
>   libmultipath: protect use of pp->udev
>   libmultipath: add uninitialize_path()
>   multipath-tools: introduce INIT_REMOVED state
>   libmultipath: update_mpp_paths(): handle INIT_REMOVED
>   libmultipath: verify_paths(): don't delete paths from pathvec
>   libmultipath: sync_paths(): handle INIT_REMOVED
>   libmultipath: orphan_paths(): delete paths in INIT_REMOVED state
>   libmultipath: adopt_paths(): skip removed paths
>   multipathd: ev_remove_path(): use INIT_REMOVED
>   multipathd: deal with INIT_REMOVED during path addition
>   multipathd: check_path(): set retrigger_delay if necessary
>   libmultipath: add update_pathvec_from_dm()
>   libmultipath: update_pathvec_from_dm: handle pp->mpp mismatch
>   libmultipath: disassemble_map(): always search paths by dev_t
>   libmultipath: disassemble_map(): require non-NULL pathvec
>   libmultipath: disassemble_map(): get rid of "is_daemon" argument
>   libmultipath: disassemble_map(): do not change pathvec and WWIDs
>   multipath: use update_pathvec_from_dm()
>   libmpathpersist: use update_pathvec_from_dm()
>   libmultipath: decrease loglevel in store_path()
>   libmultipath: dmparser: constify function arguments
> 
>  libmpathpersist/mpath_persist.c       |  56 +-----
>  libmultipath/configure.c              |   2 +-
>  libmultipath/discovery.c              |  15 +-
>  libmultipath/dmparser.c               |  70 ++-----
>  libmultipath/dmparser.h               |   4 +-
>  libmultipath/prioritizers/alua_rtpg.c |   6 +-
>  libmultipath/structs.c                |  21 +-
>  libmultipath/structs.h                |   6 +
>  libmultipath/structs_vec.c            | 263 +++++++++++++++++++++++---
>  libmultipath/structs_vec.h            |  11 +-
>  multipath/main.c                      |  71 +------
>  multipathd/cli_handlers.c             |  49 ++++-
>  multipathd/main.c                     | 113 ++++++++---
>  13 files changed, 445 insertions(+), 242 deletions(-)
> 
> -- 
> 2.26.2

  parent reply	other threads:[~2020-07-20 21:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-09 10:51 [PATCH 00/74] multipath-tools series part V: removed path handling mwilck
2020-07-09 10:51 ` [PATCH 54/74] libmultipath: protect use of pp->udev mwilck
2020-07-09 10:51 ` [PATCH 55/74] libmultipath: add uninitialize_path() mwilck
2020-07-09 10:51 ` [PATCH 56/74] multipath-tools: introduce INIT_REMOVED state mwilck
2020-07-09 10:51 ` [PATCH 57/74] libmultipath: update_mpp_paths(): handle INIT_REMOVED mwilck
2020-07-09 10:51 ` [PATCH 58/74] libmultipath: verify_paths(): don't delete paths from pathvec mwilck
2020-07-09 10:51 ` [PATCH 59/74] libmultipath: sync_paths(): handle INIT_REMOVED mwilck
2020-07-09 10:51 ` [PATCH 60/74] libmultipath: orphan_paths(): delete paths in INIT_REMOVED state mwilck
2020-07-09 10:51 ` [PATCH 61/74] libmultipath: adopt_paths(): skip removed paths mwilck
2020-07-18  4:28   ` Benjamin Marzinski
2020-07-09 10:51 ` [PATCH 62/74] multipathd: ev_remove_path(): use INIT_REMOVED mwilck
2020-07-09 10:51 ` [PATCH 63/74] multipathd: deal with INIT_REMOVED during path addition mwilck
2020-07-18  5:46   ` Benjamin Marzinski
2020-07-09 10:51 ` [PATCH 64/74] multipathd: check_path(): set retrigger_delay if necessary mwilck
2020-07-19  5:07   ` Benjamin Marzinski
2020-08-05 16:37     ` Martin Wilck
2020-07-09 10:51 ` [PATCH 65/74] libmultipath: add update_pathvec_from_dm() mwilck
2020-07-19  4:46   ` Benjamin Marzinski
2020-08-05 20:12     ` Martin Wilck
2020-07-09 10:51 ` [PATCH 66/74] libmultipath: update_pathvec_from_dm: handle pp->mpp mismatch mwilck
2020-07-19  5:12   ` Benjamin Marzinski
2020-08-05 19:44     ` Martin Wilck
2020-07-09 10:51 ` [PATCH 67/74] libmultipath: disassemble_map(): always search paths by dev_t mwilck
2020-07-09 10:51 ` [PATCH 68/74] libmultipath: disassemble_map(): require non-NULL pathvec mwilck
2020-07-09 10:51 ` [PATCH 69/74] libmultipath: disassemble_map(): get rid of "is_daemon" argument mwilck
2020-07-19  5:26   ` Benjamin Marzinski
2020-08-05 20:05     ` Martin Wilck
2020-08-11  4:56       ` Benjamin Marzinski
2020-07-09 10:51 ` [PATCH 70/74] libmultipath: disassemble_map(): do not change pathvec and WWIDs mwilck
2020-07-09 10:51 ` [PATCH 71/74] multipath: use update_pathvec_from_dm() mwilck
2020-07-20  2:57   ` Benjamin Marzinski
2020-08-05 20:22     ` Martin Wilck
2020-07-09 10:51 ` [PATCH 72/74] libmpathpersist: " mwilck
2020-07-09 10:51 ` [PATCH 73/74] libmultipath: decrease loglevel in store_path() mwilck
2020-07-09 10:51 ` [PATCH 74/74] libmultipath: dmparser: constify function arguments mwilck
2020-07-20 21:19 ` Benjamin Marzinski [this message]
2020-07-20  1:52 [PATCH 00/74] multipath-tools series part V: removed path handling Chongyun Wu
2020-08-05 20:34 ` Martin Wilck

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=20200720211917.GG11089@octiron.msp.redhat.com \
    --to=bmarzins@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=mwilck@suse.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.