mpathpersist: fix aptpl support
authorBenjamin Marzinski <bmarzins@redhat.com>
Tue, 5 Jun 2018 22:40:20 +0000 (17:40 -0500)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Thu, 21 Jun 2018 07:36:58 +0000 (09:36 +0200)
commit8e3b5cc0b1dbf0c6f36e8eecd5b4287237c4d9df
treed09ed0945877a1db92419b156d28ed9dcb3a33eb
parent5b54e7729e54cd9df930b20eaee1802cee93e39e
mpathpersist: fix aptpl support

The "Active Persist Through Power Loss" flag must be set whenever a key
is registered. However, there is no way for multipathd to know if this
was set by mpathpersist. The result is that if a path goes down and
comes back up (or if it wasn't up when mpathpersist was first run)
multipathd will clear the aptpl flag when it reregisters the key on it.

To fix this, multipath.conf now accepts an optional ":aptpl" appended
on the reservation_key value. If this is added to the reservation_key
multipathd will set the aptpl flag when it reregisters the key. If
reservation_key is set to "file", this will automatically be tracked
in the /etc/multipath/prkeys file.

To track this flag in the prkeys file, without changing the format
I've made "0x<key>" stand for non-aptpl keys, and "0X<key>" stand
for aptpl keys. Since previously, all keys used a lower-case x, this
will default to the current behavior for existing keys. Obviously, the
next time mpathpersist is run, this will be changed if --param-aptpl
is used.  Since there are no more flags that are in sg_persist that
multipathd needs to care about in mpathpersist, there shouldn't need
to be any more flags added to the prkeys file.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
16 files changed:
libmpathpersist/mpath_persist.c
libmpathpersist/mpath_updatepr.c
libmpathpersist/mpathpr.h
libmultipath/Makefile
libmultipath/config.h
libmultipath/dict.c
libmultipath/dict.h
libmultipath/prkey.c
libmultipath/prkey.h
libmultipath/propsel.c
libmultipath/structs.h
libmultipath/util.c
libmultipath/util.h
multipath/multipath.conf.5
multipathd/cli_handlers.c
multipathd/main.c