Re: [PATCH v2 00/18] change how multipathd deletes maps plus cleanups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2024-01-03 at 12:56 -0500, Benjamin Marzinski wrote:
> The main purpose of this patchset is to make multipathd call
> dm_suspend_and_flush_map() for the "del map" and "del maps"
> interactive
> commands. I ran into an issue where if there was outstanding IO to a
> queueing multipath device, dm_flush_map() would hang removing the
> last
> kpartx device, since that would close the last opener of the
> multipath
> device, forcing it to wait for the IO to flush. This is avoided by
> dm_suspend_and_flush_map(), since it disables queueing first. The
> first
> three patches do this. The next three are cleanups around removing a
> device. The rest of the patches are make multipath return better
> errors
> when it delegates removes since it doesn't need to failback to doing
> its
> own removes anymore, make libdmmp handle failures from running
> multipathd commands better, and make multipath and multipathc return
> proper error codes when multipathd commands fail.
> 
> Differences from v1 (based on suggestions by Martin Wilck)
> 0003: simplify dm_flush_maps(), since all callers set need_suspend
> 0005: Minor change in dm_flush_maps() to accomodate change in 0003. I
>       retained the reviewed-by.
> 0007: Stripped the initial "fail\n" off messages with additional
> failure
>       information.
> 0009: Minor changes in dm_flush_maps() and its callers to accomodate
>       change in 0003. I retained the reviewed-by.
> 0010: changed the log level of the error message to 2.
> 0012: search for path by dev_t first, and change the log level of the
>       error message to 2.

The commit message still says "make cli_handlers check for paths by dev
and devt". I'll take the freedom to change this to the actual ordering.

> 0015: Minor change to calling dm_flush_maps() to accomodate change in
>       0003. I retained the reviewed-by

You didn't, actually. I'll re-add it.

> 0016: multipath repeatedly calls delegate_to_multipathd for all
>       remove_retries, instead of failing back to locally calling
> remove.
> 0017: New patch based on patch 0016 discussion.
> 0018: New patch to deal with a issue caused by the change to track
> the
>       queue_if_no_path state in mpp->features, from my previous
>       patchset.
> 
> Benjamin Marzinski (18):
>   multipathd: remove nopath flushing code from flush_map()
>   multipathd: make flush_map() delete maps like the multipath command
>   multipathd: disable queueing when removing unknown maps
>   multipathd: simplify cli_del_map()
>   libmultipath: make _dm_flush_map() return an enum
>   libmultipath: make dm_remove_partmaps() a static function
>   multipathd: always start failure replies with "fail\n"
>   multipathd: print extra default reply msg for busy devices
>   multipathd: handle busy devices in cli_del_maps()
>   libmultipath: print error when find_mp_by_str() fails.
>   multipathd: don't open code find_mp_by_str() in client handers
>   multipathd: make cli_handlers check for paths by dev and devt
>   multipathd: add cli_handler reply message for missing devs
>   libdmmp: handle failures in _process_cmd
>   multipath: get rid of unnecessary retries variable
>   multipath: Don't locally retry deletgated remove failures
>   multipath: if delegation times out mark as not delegated
>   multipathd: sync features on flush_map failure corner case
> 
>  libdmmp/libdmmp.c                 |  71 +++++-------
>  libmultipath/devmapper.c          |  47 ++++----
>  libmultipath/devmapper.h          |  13 ++-
>  libmultipath/libmultipath.version |   3 +-
>  libmultipath/structs.c            |   9 +-
>  multipath/main.c                  |  72 +++++++-----
>  multipathd/cli_handlers.c         | 182 ++++++++++++++--------------
> --
>  multipathd/main.c                 |  70 ++++--------
>  multipathd/main.h                 |   3 +-
>  multipathd/uxclnt.c               |   9 +-
>  multipathd/uxlsnr.c               |  15 ++-
>  11 files changed, 241 insertions(+), 253 deletions(-)

For the set:

Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>






[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux