multipathd is now the only program that calls update_map_pr(), so move
it there, and make it static. There are no other code changes.

Signed-off-by: Benjamin Marzinski <bmarz...@redhat.com>
---
 libmpathpersist/libmpathpersist.version |  1 -
 libmpathpersist/mpath_persist_int.c     | 75 -------------------------
 libmpathpersist/mpath_persist_int.h     |  1 -
 multipathd/main.c                       | 75 +++++++++++++++++++++++++
 4 files changed, 75 insertions(+), 77 deletions(-)

diff --git a/libmpathpersist/libmpathpersist.version 
b/libmpathpersist/libmpathpersist.version
index b31237db..7f47ea99 100644
--- a/libmpathpersist/libmpathpersist.version
+++ b/libmpathpersist/libmpathpersist.version
@@ -40,5 +40,4 @@ __LIBMPATHPERSIST_INT_2.0.0 {
        mpath_alloc_prin_response;
        prin_do_scsi_ioctl;
        prout_do_scsi_ioctl;
-       update_map_pr;
 };
diff --git a/libmpathpersist/mpath_persist_int.c 
b/libmpathpersist/mpath_persist_int.c
index afd19bef..c6b2e788 100644
--- a/libmpathpersist/mpath_persist_int.c
+++ b/libmpathpersist/mpath_persist_int.c
@@ -806,78 +806,3 @@ int do_mpath_persistent_reserve_out(vector curmp, vector 
pathvec, int fd,
        }
        return ret;
 }
-
-int update_map_pr(struct multipath *mpp, struct path *pp)
-{
-       int noisy=0;
-       struct prin_resp *resp;
-       unsigned int i;
-       int ret = MPATH_PR_OTHER, isFound;
-       bool was_set = (mpp->prflag == PR_SET);
-
-       /* If pr is explicitly unset, it must be manually set */
-       if (mpp->prflag == PR_UNSET)
-               return MPATH_PR_SKIP;
-
-       if (!get_be64(mpp->reservation_key))
-       {
-               /* Nothing to do. Assuming pr mgmt feature is disabled*/
-               mpp->prflag = PR_UNSET;
-               condlog(was_set ? 2 : 4, "%s: reservation_key not set in 
multipath.conf", mpp->alias);
-               return MPATH_PR_SKIP;
-       }
-
-       resp = mpath_alloc_prin_response(MPATH_PRIN_RKEY_SA);
-       if (!resp)
-       {
-               condlog(0,"%s : failed to alloc resp in update_map_pr", 
mpp->alias);
-               return MPATH_PR_OTHER;
-       }
-
-       ret = prin_do_scsi_ioctl(pp->dev, MPATH_PRIN_RKEY_SA, resp, noisy);
-       if (ret != MPATH_PR_SUCCESS )
-       {
-               if (ret == MPATH_PR_ILLEGAL_REQ)
-                       mpp->prflag = PR_UNSET;
-               condlog(0,"%s : pr in read keys service action failed 
Error=%d", mpp->alias, ret);
-               goto out;
-       }
-       mpp->prflag = PR_UNSET;
-
-       if (resp->prin_descriptor.prin_readkeys.additional_length == 0 )
-       {
-               condlog(was_set ? 1 : 3, "%s: No key found. Device may not be 
registered. ", mpp->alias);
-               goto out;
-       }
-
-       condlog(3, "%s: Multipath reservation_key: 0x%" PRIx64 " ", mpp->alias,
-               get_be64(mpp->reservation_key));
-
-       isFound =0;
-       for (i = 0; i < 
resp->prin_descriptor.prin_readkeys.additional_length/8; i++ )
-       {
-               if (libmp_verbosity >= 3) {
-                       condlog(3, "%s: PR IN READKEYS[%d] reservation key:",
-                               mpp->alias, i);
-                       dumpHex((char 
*)&resp->prin_descriptor.prin_readkeys.key_list[i * 8], 8, 1);
-               }
-
-               if (!memcmp(&mpp->reservation_key, 
&resp->prin_descriptor.prin_readkeys.key_list[i * 8], 8)) {
-                       condlog(3, "%s: reservation key found in pr in readkeys 
response", mpp->alias);
-                       isFound =1;
-               }
-       }
-
-       if (isFound)
-       {
-               mpp->prflag = PR_SET;
-               condlog(was_set ? 3 : 2, "%s: key found. prflag set.",
-                       mpp->alias);
-       } else
-               condlog(was_set ? 1 : 3, "%s: key not found. prflag unset.",
-                       mpp->alias);
-
-out:
-       free(resp);
-       return ret;
-}
diff --git a/libmpathpersist/mpath_persist_int.h 
b/libmpathpersist/mpath_persist_int.h
index 7b32c1e2..ed7b46f7 100644
--- a/libmpathpersist/mpath_persist_int.h
+++ b/libmpathpersist/mpath_persist_int.h
@@ -20,6 +20,5 @@ int prin_do_scsi_ioctl(char * dev, int rq_servact, struct 
prin_resp * resp, int
 int prout_do_scsi_ioctl( char * dev, int rq_servact, int rq_scope,
                         unsigned int rq_type, struct prout_param_descriptor 
*paramp, int noisy);
 void dumpHex(const char* , int len, int no_ascii);
-int update_map_pr(struct multipath *mpp, struct path *pp);
 
 #endif /* MPATH_PERSIST_INT_H_INCLUDED */
diff --git a/multipathd/main.c b/multipathd/main.c
index d22425f6..fd0c0dba 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -4248,6 +4248,81 @@ static void check_prhold(struct multipath *mpp, struct 
path *pp)
                mpp->prhold = PR_SET;
 }
 
+static int update_map_pr(struct multipath *mpp, struct path *pp)
+{
+       int noisy=0;
+       struct prin_resp *resp;
+       unsigned int i;
+       int ret = MPATH_PR_OTHER, isFound;
+       bool was_set = (mpp->prflag == PR_SET);
+
+       /* If pr is explicitly unset, it must be manually set */
+       if (mpp->prflag == PR_UNSET)
+               return MPATH_PR_SKIP;
+
+       if (!get_be64(mpp->reservation_key))
+       {
+               /* Nothing to do. Assuming pr mgmt feature is disabled*/
+               mpp->prflag = PR_UNSET;
+               condlog(was_set ? 2 : 4, "%s: reservation_key not set in 
multipath.conf", mpp->alias);
+               return MPATH_PR_SKIP;
+       }
+
+       resp = mpath_alloc_prin_response(MPATH_PRIN_RKEY_SA);
+       if (!resp)
+       {
+               condlog(0,"%s : failed to alloc resp in update_map_pr", 
mpp->alias);
+               return MPATH_PR_OTHER;
+       }
+
+       ret = prin_do_scsi_ioctl(pp->dev, MPATH_PRIN_RKEY_SA, resp, noisy);
+       if (ret != MPATH_PR_SUCCESS )
+       {
+               if (ret == MPATH_PR_ILLEGAL_REQ)
+                       mpp->prflag = PR_UNSET;
+               condlog(0,"%s : pr in read keys service action failed 
Error=%d", mpp->alias, ret);
+               goto out;
+       }
+       mpp->prflag = PR_UNSET;
+
+       if (resp->prin_descriptor.prin_readkeys.additional_length == 0 )
+       {
+               condlog(was_set ? 1 : 3, "%s: No key found. Device may not be 
registered. ", mpp->alias);
+               goto out;
+       }
+
+       condlog(3, "%s: Multipath reservation_key: 0x%" PRIx64 " ", mpp->alias,
+               get_be64(mpp->reservation_key));
+
+       isFound =0;
+       for (i = 0; i < 
resp->prin_descriptor.prin_readkeys.additional_length/8; i++ )
+       {
+               if (libmp_verbosity >= 3) {
+                       condlog(3, "%s: PR IN READKEYS[%d] reservation key:",
+                               mpp->alias, i);
+                       dumpHex((char 
*)&resp->prin_descriptor.prin_readkeys.key_list[i * 8], 8, 1);
+               }
+
+               if (!memcmp(&mpp->reservation_key, 
&resp->prin_descriptor.prin_readkeys.key_list[i * 8], 8)) {
+                       condlog(3, "%s: reservation key found in pr in readkeys 
response", mpp->alias);
+                       isFound =1;
+               }
+       }
+
+       if (isFound)
+       {
+               mpp->prflag = PR_SET;
+               condlog(was_set ? 3 : 2, "%s: key found. prflag set.",
+                       mpp->alias);
+       } else
+               condlog(was_set ? 1 : 3, "%s: key not found. prflag unset.",
+                       mpp->alias);
+
+out:
+       free(resp);
+       return ret;
+}
+
 static void mpath_pr_event_handle(struct path *pp)
 {
        struct multipath *mpp = pp->mpp;
-- 
2.48.1


Reply via email to