All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] no_path_retry/queue_if_no_path logic & logging/man page fixes
@ 2017-06-13 22:55 Martin Wilck
  2017-06-13 22:55 ` [PATCH 1/7] libmultipath: load_config: skip setting unnecessary defaults Martin Wilck
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Martin Wilck @ 2017-06-13 22:55 UTC (permalink / raw)
  To: Christophe Varoqui, Hannes Reinecke; +Cc: dm-devel, Xose Vazquez Perez

This patch set attempts to sanitize the logic used for consistently handling
options that can be set both via the "features" string and explicit multipath.conf
options. This is most prominently "no_path_retry" vs. "queue_if_no_path", but also
"retain_attached_hw_handler" vs. the feature of the same name.

The logic this patch set follows is:
 - If "no_path_retry" is set to any value, "queue_if_no_path" is ignored
   (this is the case nowadays for almost all "real" storage arrays, thanks to hwtable).
 - Otherwise, if "queue_if_no_path" is set, treat it like "no_path_retry queue".

... likewise for "retain_attached_hw_handler".

The logic is implemented in select_features() (which needs to be called after
select_no_path_retry()) for multipath groups, and similarly in merge_hwe() for
hwtable entries. The actual feature setting is made in assemble_map(), I also
fix a problem there.

The patch set documents the behavior in the man page, and adds some more
man page fixes.

Finally, by skipping superfluous default initializations in load_config(), the
log messages for the respective config settings become more appropriate.

Review and comments are highly welcome.

Regards,
Martin

Martin Wilck (7):
  libmultipath: load_config: skip setting unnecessary defaults
  libmultipath: add/remove_feature: use const char* for feature
  libmultipath: clarify option conflicts for "features"
  libmultipath: merge_hwe: fix queue_if_no_path logic
  libmultipath: assemble_map: fix queue_if_no_path logic
  multipath.conf.5: document no_path_retry vs. queue_if_no_path
  multipath.conf.5: Remove ??? and other minor fixes

 libmultipath/config.c      | 36 ++++++++++++++------------------
 libmultipath/configure.c   |  4 ++--
 libmultipath/dmparser.c    |  5 ++---
 libmultipath/propsel.c     | 39 +++++++++++++++++++++-------------
 libmultipath/structs.c     | 30 +++++++++++++-------------
 libmultipath/structs.h     |  4 ++--
 multipath/multipath.conf.5 | 52 ++++++++++++++++++++++++++--------------------
 7 files changed, 92 insertions(+), 78 deletions(-)

-- 
2.13.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-06-19 20:41 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-13 22:55 [PATCH 0/7] no_path_retry/queue_if_no_path logic & logging/man page fixes Martin Wilck
2017-06-13 22:55 ` [PATCH 1/7] libmultipath: load_config: skip setting unnecessary defaults Martin Wilck
2017-06-15 19:49   ` Benjamin Marzinski
2017-06-13 22:55 ` [PATCH 2/7] libmultipath: add/remove_feature: use const char* for feature Martin Wilck
2017-06-13 22:55 ` [PATCH 3/7] libmultipath: clarify option conflicts for "features" Martin Wilck
2017-06-15 19:54   ` Benjamin Marzinski
2017-06-19 20:41     ` Martin Wilck
2017-06-13 22:55 ` [PATCH 4/7] libmultipath: merge_hwe: fix queue_if_no_path logic Martin Wilck
2017-06-15 19:55   ` Benjamin Marzinski
2017-06-13 22:55 ` [PATCH 5/7] libmultipath: assemble_map: " Martin Wilck
2017-06-13 22:55 ` [PATCH 6/7] multipath.conf.5: document no_path_retry vs. queue_if_no_path Martin Wilck
2017-06-15 19:57   ` Benjamin Marzinski
2017-06-13 22:55 ` [PATCH 7/7] multipath.conf.5: Remove ??? and other minor fixes Martin Wilck
2017-06-15 19:46 ` [PATCH 0/7] no_path_retry/queue_if_no_path logic & logging/man page fixes Benjamin Marzinski

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.