mbox series

[v3,0/5] fix set_no_path_retry and cleanup commands

Message ID 20231219225151.787521-1-bmarzins@redhat.com (mailing list archive)
Headers show
Series fix set_no_path_retry and cleanup commands | expand

Message

Benjamin Marzinski Dec. 19, 2023, 10:51 p.m. UTC
This patchset combines my patch to disable queueing in set_no_path_retry
when recovery mode has timed out with my pathset to cleanup the
interactive commands. This has been significantly changed in v3

Differences from v2 (based on suggestions by Martin Wilck):
0001: This completely new patch that Martin suggested. Martin, I've
      made you the Author. Feel free to change my commit message if
      you'd like.
0002: This is similar to patch 0001 from v2, except the rational has
      changed. It is still possible to get in a situation where a
      multipath device is queueing after timeout out in recovery, so we
      still need to handle this. Since we won't have to worry about
      multipathd flip-flopping the queueing state on reloads, I pulled
      this check outside the PATH_PENDING check, as Martin suggested.
0003: This is the same as patches 0002-0004 from v2. It made no sense
      to merge 0002 and 0004 but not 0003. In would just result in
      making changes only to undo them in the next patch.
0004: This is instead of my 0005 patch from v2. In order for
      disabling and restoring queuing to always work correctly,
      multipathd needs to track the current queueing state.
0005: This is a new patch based on some of Martin's comments on
      v2 patch 0005.

Differences from v1 (based on suggestions by Martin Wilck):
0001: added comments explaining why cleaning up the queueing state is
      unnecessary in update_queue_mode_{add|del}_path().
patches 0002-0005 were previously 0001-0004

Benjamin Marzinski (4):
  multipathd: Make sure to disable queueing if recovery has failed.
  multipathd: don't modify the multipath device on show commands
  libmultipath: keep track of queueing state in features
  multipathd: only restore queueing if it has been disabled first

Martin Wilck (1):
  libmultipath: avoid temporarily enabling queueing on reload

 libmultipath/configure.c   |  4 +--
 libmultipath/devmapper.c   | 23 +++++++++++++++---
 libmultipath/devmapper.h   |  2 +-
 libmultipath/dmparser.c    | 14 +++++++++--
 libmultipath/structs_vec.c | 34 +++++++++++++++++++++-----
 multipathd/cli_handlers.c  | 50 +++++++++++++++++---------------------
 multipathd/dmevents.c      |  2 +-
 multipathd/main.c          | 33 +++++++++++++------------
 multipathd/main.h          |  7 +++---
 multipathd/multipathd.8.in | 12 +++++++--
 multipathd/waiter.c        |  2 +-
 11 files changed, 116 insertions(+), 67 deletions(-)

Comments

Martin Wilck Jan. 4, 2024, 6:37 p.m. UTC | #1
On Tue, 2023-12-19 at 17:51 -0500, Benjamin Marzinski wrote:
> This patchset combines my patch to disable queueing in
> set_no_path_retry
> when recovery mode has timed out with my pathset to cleanup the
> interactive commands. This has been significantly changed in v3
> 
> Differences from v2 (based on suggestions by Martin Wilck):
> 0001: This completely new patch that Martin suggested. Martin, I've
>       made you the Author. Feel free to change my commit message if
>       you'd like.
> 0002: This is similar to patch 0001 from v2, except the rational has
>       changed. It is still possible to get in a situation where a
>       multipath device is queueing after timeout out in recovery, so
> we
>       still need to handle this. Since we won't have to worry about
>       multipathd flip-flopping the queueing state on reloads, I
> pulled
>       this check outside the PATH_PENDING check, as Martin suggested.
> 0003: This is the same as patches 0002-0004 from v2. It made no sense
>       to merge 0002 and 0004 but not 0003. In would just result in
>       making changes only to undo them in the next patch.
> 0004: This is instead of my 0005 patch from v2. In order for
>       disabling and restoring queuing to always work correctly,
>       multipathd needs to track the current queueing state.
> 0005: This is a new patch based on some of Martin's comments on
>       v2 patch 0005.
> 
> Differences from v1 (based on suggestions by Martin Wilck):
> 0001: added comments explaining why cleaning up the queueing state is
>       unnecessary in update_queue_mode_{add|del}_path().
> patches 0002-0005 were previously 0001-0004
> 
> Benjamin Marzinski (4):
>   multipathd: Make sure to disable queueing if recovery has failed.
>   multipathd: don't modify the multipath device on show commands
>   libmultipath: keep track of queueing state in features
>   multipathd: only restore queueing if it has been disabled first
> 
> Martin Wilck (1):
>   libmultipath: avoid temporarily enabling queueing on reload
> 
>  libmultipath/configure.c   |  4 +--
>  libmultipath/devmapper.c   | 23 +++++++++++++++---
>  libmultipath/devmapper.h   |  2 +-
>  libmultipath/dmparser.c    | 14 +++++++++--
>  libmultipath/structs_vec.c | 34 +++++++++++++++++++++-----
>  multipathd/cli_handlers.c  | 50 +++++++++++++++++-------------------
> --
>  multipathd/dmevents.c      |  2 +-
>  multipathd/main.c          | 33 +++++++++++++------------
>  multipathd/main.h          |  7 +++---
>  multipathd/multipathd.8.in | 12 +++++++--
>  multipathd/waiter.c        |  2 +-
>  11 files changed, 116 insertions(+), 67 deletions(-)
> 

For the set:

Reviewed-by: Martin Wilck <mwilck@suse.com>