mpathpersist: Fix invalid condition check
authorBenjamin Marzinski <bmarzins@redhat.com>
Wed, 8 Nov 2017 00:15:11 +0000 (18:15 -0600)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 15 Nov 2017 22:32:25 +0000 (23:32 +0100)
In commit 1990257c (mpathpersist: add support for prkeys file), the
check to see if mpathpersist needed to tell multipathd to update a
device's prkey was wrong. It had a typo that made it evaluate to true
for any service action, instead of just for registrations. This is the
correct check.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
libmpathpersist/mpath_persist.c

index b5ed556..84ab293 100644 (file)
@@ -339,8 +339,9 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope,
 
        memcpy(&prkey, paramp->sa_key, 8);
        if (mpp->prkey_source == PRKEY_SOURCE_FILE && prkey &&
-           ((!get_be64(mpp->reservation_key) && MPATH_PROUT_REG_SA) ||
-            MPATH_PROUT_REG_IGN_SA)) {
+           ((!get_be64(mpp->reservation_key) &&
+             rq_servact == MPATH_PROUT_REG_SA) ||
+            rq_servact == MPATH_PROUT_REG_IGN_SA)) {
                memcpy(&mpp->reservation_key, paramp->sa_key, 8);
                if (update_prkey(alias, get_be64(mpp->reservation_key))) {
                        condlog(0, "%s: failed to set prkey for multipathd.",