When getting IMM info for a lock resource, SaLckResource, the information is
often not correct.

Both lckd and lcknd are not updating IMM correctly when SaLckResource
information changes at runtime.

Write test cases which make sure these attributes are being updated correctly.
And fix the issues.
---
 src/lck/Makefile.am                   |  5 ++-
 src/lck/apitest/test_saLckLimitGet.cc |  4 ++
 src/lck/lckd/gld_evt.c                | 17 +++++---
 src/lck/lckd/gld_rsc.c                | 26 ++++++------
 src/lck/lckd/gld_standby.c            |  2 +-
 src/lck/lcknd/glnd_client.c           | 76 +++++++++++++++++------------------
 src/lck/lcknd/glnd_client.h           |  4 --
 src/lck/lcknd/glnd_evt.c              | 48 ++++++++++++++--------
 src/lck/lcknd/glnd_res.c              | 24 +++++++----
 9 files changed, 121 insertions(+), 85 deletions(-)

diff --git a/src/lck/Makefile.am b/src/lck/Makefile.am
index db3e043e1..2aa64b4a5 100644
--- a/src/lck/Makefile.am
+++ b/src/lck/Makefile.am
@@ -200,7 +200,10 @@ bin_lcktest_SOURCES = \
        src/lck/apitest/tet_glsv_util.c \
        src/lck/apitest/tet_gla.c \
        src/lck/apitest/tet_gla_conf.c \
-       src/lck/apitest/tet_gld.c
+       src/lck/apitest/tet_gld.c \
+       src/lck/apitest/test_ErrUnavailable.cc \
+       src/lck/apitest/test_saLckLimitGet.cc \
+       src/lck/apitest/test_saLckResourceClass.cc
 
 bin_lcktest_LDADD = \
   lib/libSaLck.la \
diff --git a/src/lck/apitest/test_saLckLimitGet.cc 
b/src/lck/apitest/test_saLckLimitGet.cc
index 74c9194d4..dbf804ac1 100644
--- a/src/lck/apitest/test_saLckLimitGet.cc
+++ b/src/lck/apitest/test_saLckLimitGet.cc
@@ -3,6 +3,7 @@
 #include <cstring>
 #include <iostream>
 #include <poll.h>
+#include <unistd.h>
 #include "ais/include/saLck.h"
 #include "lck/apitest/lcktest.h"
 
@@ -153,6 +154,9 @@ static void saLckLimitGet_08(void)
 
   rc = saLckFinalize(lckHandle);
   assert(rc == SA_AIS_OK);
+
+  // wait for resources to clean up
+  sleep(2);
 }
 
 static void saLckLimitGet_09(void)
diff --git a/src/lck/lckd/gld_evt.c b/src/lck/lckd/gld_evt.c
index 6134093f1..c6a33282e 100644
--- a/src/lck/lckd/gld_evt.c
+++ b/src/lck/lckd/gld_evt.c
@@ -144,7 +144,7 @@ static uint32_t gld_rsc_open(GLSV_GLD_EVT *evt)
        NCSMDS_INFO snd_mds;
        uint32_t res = NCSCC_RC_FAILURE;
        ;
-       SaAisErrorT error;
+       SaAisErrorT error = SA_AIS_OK;
        uint32_t node_id;
        bool node_first_rsc_open = false;
        GLSV_GLD_GLND_RSC_REF *glnd_rsc = NULL;
@@ -347,14 +347,14 @@ static uint32_t gld_rsc_close(GLSV_GLD_EVT *evt)
                glnd_rsc->rsc_info->saf_rsc_no_of_users =
                    glnd_rsc->rsc_info->saf_rsc_no_of_users - 1;
 
+       if (evt->info.rsc_details.lcl_ref_cnt == 0)
+               gld_rsc_rmv_node_ref(gld_cb, glnd_rsc->rsc_info, glnd_rsc,
+                                    node_details, orphan_flag);
+
        /*Checkkpoint resource close event */
        glsv_gld_a2s_ckpt_rsc_details(
            gld_cb, evt->evt_type, evt->info.rsc_details, node_details->dest_id,
            evt->info.rsc_details.lcl_ref_cnt);
-
-       if (evt->info.rsc_details.lcl_ref_cnt == 0)
-               gld_rsc_rmv_node_ref(gld_cb, glnd_rsc->rsc_info, glnd_rsc,
-                                    node_details, orphan_flag);
 end:
        TRACE_LEAVE2("Return value %u", rc);
        return rc;
@@ -426,19 +426,24 @@ uint32_t gld_rsc_ref_set_orphan(GLSV_GLD_GLND_DETAILS 
*node_details,
 {
        GLSV_GLD_GLND_RSC_REF *glnd_rsc_ref;
 
+       TRACE_ENTER2("rsc_id: %i orphan: %i lck_mode: %i", rsc_id, orphan,
+                       lck_mode);
+
        /* Find the rsc_info based on resource id */
        glnd_rsc_ref = (GLSV_GLD_GLND_RSC_REF *)ncs_patricia_tree_get(
            &node_details->rsc_info_tree, (uint8_t *)&rsc_id);
        if ((glnd_rsc_ref == NULL) || (glnd_rsc_ref->rsc_info == NULL)) {
                LOG_ER("Patricia tree get failed");
+               TRACE_LEAVE();
                return NCSCC_RC_FAILURE;
        }
 
        glnd_rsc_ref->rsc_info->can_orphan = orphan;
        glnd_rsc_ref->rsc_info->orphan_lck_mode = lck_mode;
-       if (orphan == true)
+       if (orphan == false)
                glnd_rsc_ref->rsc_info->saf_rsc_stripped_cnt++;
 
+       TRACE_LEAVE();
        return NCSCC_RC_SUCCESS;
 }
 
diff --git a/src/lck/lckd/gld_rsc.c b/src/lck/lckd/gld_rsc.c
index ed2bd5a71..7a45cd716 100644
--- a/src/lck/lckd/gld_rsc.c
+++ b/src/lck/lckd/gld_rsc.c
@@ -297,12 +297,16 @@ void gld_free_rsc_info(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info)
        SaNameT lck_name;
        SaNameT immObj_name;
 
+       TRACE_ENTER();
+
        memset(&lck_name, '\0', sizeof(SaNameT));
        memset(&immObj_name, '\0', sizeof(SaNameT));
 
        /* Some node is still referring to this resource, so backout */
-       if (rsc_info->node_list != NULL)
+       if (rsc_info->node_list != NULL) {
+               TRACE_LEAVE();
                return;
+       }
 
        /* Free the node from the resource linked list */
        if (rsc_info->prev != NULL)
@@ -322,6 +326,7 @@ void gld_free_rsc_info(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info)
                                                  &immObj_name) != SA_AIS_OK) {
                        LOG_ER("Deleting run time object %s FAILED",
                               lck_name.value);
+                       TRACE_LEAVE();
                        return;
                }
        }
@@ -332,6 +337,7 @@ void gld_free_rsc_info(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info)
                                          (NCS_PATRICIA_NODE *)rsc_map_info) !=
                    NCSCC_RC_SUCCESS) {
                        LOG_ER("Patricia tree del failed");
+                       TRACE_LEAVE();
                        return;
                }
                m_MMGR_FREE_GLSV_GLD_RSC_MAP_INFO(rsc_map_info);
@@ -347,6 +353,8 @@ void gld_free_rsc_info(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info)
        }
 
        m_MMGR_FREE_GLSV_GLD_RSC_INFO(rsc_info);
+
+       TRACE_LEAVE();
        return;
 }
 
@@ -431,7 +439,10 @@ void gld_rsc_rmv_node_ref(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info,
        GLSV_NODE_LIST **node_list, *free_node_list = NULL;
        bool chg_master = false;
 
+       TRACE_ENTER();
+
        if (glnd_rsc == NULL || rsc_info == NULL) {
+               TRACE_LEAVE();
                return;
        }
        if (rsc_info->node_list->node_id == node_details->node_id)
@@ -455,9 +466,7 @@ void gld_rsc_rmv_node_ref(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info,
                m_MMGR_FREE_GLSV_NODE_LIST(free_node_list);
        }
 
-       if (orphan_flag) {
-               rsc_info->can_orphan = false;
-       }
+       rsc_info->can_orphan = orphan_flag;
 
        if (ncs_patricia_tree_del(&node_details->rsc_info_tree,
                                  (NCS_PATRICIA_NODE *)glnd_rsc) !=
@@ -465,14 +474,6 @@ void gld_rsc_rmv_node_ref(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info,
                LOG_ER("Patricia tree del failed");
        }
 
-       if (rsc_info->node_list != NULL && rsc_info->can_orphan == false)
-               glnd_rsc->rsc_info->saf_rsc_no_of_users =
-                   glnd_rsc->rsc_info->saf_rsc_no_of_users +
-                   1; /* In the purge flow we need to increment the number of
-                         users beacuse we have already decremented it in
-                         finalize flow and again decremented in purge flow
-                         which amounts to double decrement */
-
        m_MMGR_FREE_GLSV_GLD_GLND_RSC_REF(glnd_rsc);
 
        if (rsc_info->node_list == NULL && rsc_info->can_orphan == false)
@@ -488,6 +489,7 @@ void gld_rsc_rmv_node_ref(GLSV_GLD_CB *gld_cb, 
GLSV_GLD_RSC_INFO *rsc_info,
                gld_snd_master_status(gld_cb, rsc_info,
                                      GLND_RESOURCE_ELECTION_IN_PROGESS);
        }
+       TRACE_LEAVE();
        return;
 }
 
diff --git a/src/lck/lckd/gld_standby.c b/src/lck/lckd/gld_standby.c
index 241d52631..4d1763f58 100644
--- a/src/lck/lckd/gld_standby.c
+++ b/src/lck/lckd/gld_standby.c
@@ -102,7 +102,7 @@ static uint32_t 
glsv_gld_standby_rsc_open(GLSV_GLD_A2S_CKPT_EVT *async_evt)
        GLSV_GLD_RSC_INFO *rsc_info;
        GLSV_GLD_GLND_DETAILS *node_details;
        GLSV_NODE_LIST *node_list, **tmp_node_list;
-       SaAisErrorT error;
+       SaAisErrorT error = SA_AIS_OK;
        uint32_t node_id;
        uint32_t rc = NCSCC_RC_FAILURE;
        TRACE_ENTER();
diff --git a/src/lck/lcknd/glnd_client.c b/src/lck/lcknd/glnd_client.c
index c0e53998d..eead1af2a 100644
--- a/src/lck/lcknd/glnd_client.c
+++ b/src/lck/lcknd/glnd_client.c
@@ -32,6 +32,12 @@
 
 #include "lck/lcknd/glnd.h"
 #include <string.h>
+
+static uint32_t glnd_client_node_resource_del(GLND_CB * glnd_cb,
+               GLND_CLIENT_INFO * client_info,
+               GLND_RESOURCE_INFO * res_info,
+               bool *orphan);
+
 /*****************************************************************************
   PROCEDURE NAME : glnd_client_node_find
 
@@ -278,7 +284,6 @@ uint32_t glnd_client_node_del(GLND_CB *glnd_cb, 
GLND_CLIENT_INFO *client_info)
        GLND_CLIENT_LIST_RESOURCE *res_list, *tmp_res_list;
        GLND_RESOURCE_INFO *res_info;
        SaLckLockModeT mode;
-       GLSV_GLD_EVT gld_evt;
        bool orphan = false;
        uint32_t rc = NCSCC_RC_SUCCESS;
 
@@ -292,48 +297,34 @@ uint32_t glnd_client_node_del(GLND_CB *glnd_cb, 
GLND_CLIENT_INFO *client_info)
                goto end;
        }
        /* free up all the resource requests */
-       for (res_list = client_info->res_list; res_list != NULL;) {
+       for (res_list = client_info->res_list;
+               res_list != NULL;
+               res_list = tmp_res_list) {
                res_info = res_list->rsc_info;
-               tmp_res_list = res_list;
-               res_list = res_list->next;
+               tmp_res_list = res_list->next;
+
                if (res_info) {
+                       uint32_t open_ref_cnt = res_list->open_ref_cnt;
+
                        glnd_set_orphan_state(glnd_cb, res_info);
-                       glnd_client_node_resource_del(glnd_cb, client_info,
-                                                     res_info);
+                       rc = glnd_client_node_resource_del(glnd_cb, client_info,
+                                                     res_info, &orphan);
+
+                       if (rc == NCSCC_RC_SUCCESS) {
+                               /* client had this resource open "open_ref_cnt"
+                                * times */
+                               res_info->lcl_ref_cnt -= open_ref_cnt;
+                       }
+
                        if (!res_info->lck_master_info.grant_list) {
                                /* do the re sync of the grant list */
                                glnd_resource_master_lock_resync_grant_list(
                                    glnd_cb, res_info);
                        }
-                       if (res_info->lcl_ref_cnt > 0) {
-
-                               memset(&gld_evt, 0, sizeof(GLSV_GLD_EVT));
-
-                               gld_evt.evt_type = GLSV_GLD_EVT_RSC_CLOSE;
-                               gld_evt.info.rsc_details.rsc_id =
-                                   res_info->resource_id;
-                               gld_evt.info.rsc_details.lcl_ref_cnt =
-                                   res_info->lcl_ref_cnt;
-                               glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
-                                                     glnd_cb->gld_mdest_id);
-
-                               res_info->lcl_ref_cnt--;
-                       }
 
                        glnd_restart_resource_info_ckpt_overwrite(glnd_cb,
                                                                  res_info);
 
-                       if (tmp_res_list->open_ref_cnt > 1) {
-                               memset(&gld_evt, 0, sizeof(GLSV_GLD_EVT));
-
-                               gld_evt.evt_type = GLSV_GLD_EVT_RSC_CLOSE;
-                               gld_evt.info.rsc_details.rsc_id =
-                                   res_info->resource_id;
-                               gld_evt.info.rsc_details.lcl_ref_cnt =
-                                   tmp_res_list->open_ref_cnt;
-                               glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
-                                                     glnd_cb->gld_mdest_id);
-                       }
                        if (res_info->lcl_ref_cnt == 0 &&
                            glnd_resource_grant_list_orphan_locks(
                                res_info, &mode) == false) {
@@ -375,13 +366,15 @@ uint32_t glnd_client_node_resource_add(GLND_CLIENT_INFO 
*client_info,
                                       GLND_RESOURCE_INFO *res_info)
 {
        GLND_CLIENT_LIST_RESOURCE *resource_list;
-       uint32_t rc = NCSCC_RC_FAILURE;
+       uint32_t rc = NCSCC_RC_SUCCESS;
 
        TRACE_ENTER2("client_info->agent_mds_dest %" PRIx64,
                     client_info->agent_mds_dest);
 
-       if (!client_info)
+       if (!client_info) {
+               rc = NCSCC_RC_FAILURE;
                goto done;
+       }
 
        for (resource_list = client_info->res_list;
             resource_list != NULL && resource_list->rsc_info != res_info;
@@ -427,18 +420,20 @@ done:
 
   NOTES         : None
 *****************************************************************************/
-uint32_t glnd_client_node_resource_del(GLND_CB *glnd_cb,
+static uint32_t glnd_client_node_resource_del(GLND_CB *glnd_cb,
                                       GLND_CLIENT_INFO *client_info,
-                                      GLND_RESOURCE_INFO *res_info)
+                                      GLND_RESOURCE_INFO *res_info,
+                                       bool *orphan)
 {
        GLND_CLIENT_LIST_RESOURCE *resource_list;
        GLND_CLIENT_LIST_RESOURCE_LOCK_REQ *lock_req_list, *del_req_list;
        GLSV_GLND_EVT glnd_evt;
        SaLckLockModeT lock_type = SA_LCK_PR_LOCK_MODE;
        bool local_orphan_lock = false;
+       uint32_t rc = NCSCC_RC_FAILURE;
 
        if (!client_info) {
-               return NCSCC_RC_FAILURE;
+               return rc;
        }
 
        for (resource_list = client_info->res_list;
@@ -483,6 +478,7 @@ uint32_t glnd_client_node_resource_del(GLND_CB *glnd_cb,
                                        glnd_mds_msg_send_glnd(
                                            glnd_cb, &glnd_evt,
                                            res_info->master_mds_dest);
+                                       *orphan = true;
                                } else {
                                        TRACE(
                                            "lock still outstanding: sending 
cancel request");
@@ -553,9 +549,11 @@ uint32_t glnd_client_node_resource_del(GLND_CB *glnd_cb,
                        resource_list->prev->next = resource_list->next;
 
                m_MMGR_FREE_GLND_CLIENT_RES_LIST(resource_list);
+
+               rc = NCSCC_RC_SUCCESS;
        }
 
-       return NCSCC_RC_SUCCESS;
+       return rc;
 }
 
 /*****************************************************************************
@@ -674,8 +672,10 @@ uint32_t glnd_client_node_lcl_resource_del(GLND_CB 
*glnd_cb,
                        *resource_del_flag = resource_del;
 
                        m_MMGR_FREE_GLND_CLIENT_RES_LIST(resource_list);
-               } else
+               } else {
                        *resource_del_flag = resource_del;
+                       resource_list->open_ref_cnt--;
+               }
        }
        *resource_del_flag = resource_del;
 
diff --git a/src/lck/lcknd/glnd_client.h b/src/lck/lcknd/glnd_client.h
index 6c2de8853..3607ace92 100644
--- a/src/lck/lcknd/glnd_client.h
+++ b/src/lck/lcknd/glnd_client.h
@@ -64,10 +64,6 @@ uint32_t glnd_client_node_del(GLND_CB *glnd_cb, 
GLND_CLIENT_INFO *client_info);
 uint32_t glnd_client_node_resource_add(GLND_CLIENT_INFO *client_info,
                                        struct glnd_resource_info_tag 
*res_info);
 
-uint32_t glnd_client_node_resource_del(GLND_CB *glnd_cb,
-                                       GLND_CLIENT_INFO *client_info,
-                                       struct glnd_resource_info_tag 
*res_info);
-
 uint32_t glnd_client_node_lcl_resource_del(
     GLND_CB *glnd_cb, GLND_CLIENT_INFO *client_info,
     struct glnd_resource_info_tag *res_info, SaLckResourceIdT lcl_resource_id,
diff --git a/src/lck/lcknd/glnd_evt.c b/src/lck/lcknd/glnd_evt.c
index 5394149dc..025ea23d6 100644
--- a/src/lck/lcknd/glnd_evt.c
+++ b/src/lck/lcknd/glnd_evt.c
@@ -1223,23 +1223,24 @@ static uint32_t glnd_process_gla_resource_close(GLND_CB 
*glnd_cb,
                /* decrement the resource count and if zero send the event to
                 * the gld */
                if (resource_del == true) {
-                       if (res_node->lcl_ref_cnt != 0 &&
-                           rsc_info->lcl_resource_id_count == 1) {
-                               res_node->lcl_ref_cnt--;
-                               glnd_restart_resource_info_ckpt_overwrite(
-                                   glnd_cb, res_node);
+                       res_node->lcl_ref_cnt--;
+                       glnd_restart_resource_info_ckpt_overwrite(
+                           glnd_cb,
+                           res_node);
 
-                               if (res_node->lcl_ref_cnt == 0 &&
-                                   glnd_resource_grant_list_orphan_locks(
-                                       res_node, &mode) == false) {
-                                       glnd_resource_node_destroy(
-                                           glnd_cb, res_node, orphan);
-                                       res_node =
-                                           NULL; /* It is freed inside
-                                                    glnd_resource_node_destroy
-                                                  */
-                               }
+                       orphan = glnd_resource_grant_list_orphan_locks(
+                                   res_node,
+                                   &mode);
+
+                       if (res_node->lcl_ref_cnt == 0 && orphan == false) {
+                               glnd_resource_node_destroy(glnd_cb,
+                                                       res_node, orphan);
+                               /* It is freed inside
+                                  glnd_resource_node_destroy
+                                */
+                               res_node = NULL;
                        }
+
                        if (res_node) {
                                glnd_resource_master_lock_resync_grant_list(
                                    glnd_cb, res_node);
@@ -1250,7 +1251,9 @@ static uint32_t glnd_process_gla_resource_close(GLND_CB 
*glnd_cb,
                                gld_evt.info.rsc_details.rsc_id =
                                    res_node->resource_id;
                                gld_evt.info.rsc_details.lcl_ref_cnt =
-                                   rsc_info->lcl_resource_id_count;
+                                       res_node->lcl_ref_cnt;
+                               gld_evt.info.rsc_details.orphan = orphan;
+
                                glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
                                                      glnd_cb->gld_mdest_id);
                        }
@@ -2734,7 +2737,20 @@ static uint32_t glnd_process_glnd_lck_req_orphan(GLND_CB 
*glnd_cb,
                                    SA_LCK_PR_LOCK_MODE)
                                        res_node->lck_master_info.pr_orphaned =
                                            true;
+
+                               /* notify GLD of the orphan */
+                               GLSV_GLD_EVT gld_evt;
+
+                               memset(&gld_evt, 0, sizeof(GLSV_GLD_EVT));
+                               m_GLND_RESOURCE_LCK_FILL(
+                                       gld_evt, GLSV_GLD_EVT_SET_ORPHAN,
+                                       res_node->resource_id, true,
+                                       lck_list_info->lock_info.lock_type);
+
+                               glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
+                                       glnd_cb->gld_mdest_id);
                        }
+
                        /* free the lck_list info */
                        glnd_resource_lock_req_delete(res_node, lck_list_info);
 
diff --git a/src/lck/lcknd/glnd_res.c b/src/lck/lcknd/glnd_res.c
index a8b32962c..53ed10db7 100644
--- a/src/lck/lcknd/glnd_res.c
+++ b/src/lck/lcknd/glnd_res.c
@@ -186,6 +186,8 @@ reaches zero.
 *****************************************************************************/
 uint32_t glnd_set_orphan_state(GLND_CB *glnd_cb, GLND_RESOURCE_INFO *res_info)
 {
+       TRACE_ENTER();
+
        GLND_RES_LOCK_LIST_INFO *grant_list = NULL;
 
        if (res_info->lck_master_info.grant_list == NULL) {
@@ -195,6 +197,8 @@ uint32_t glnd_set_orphan_state(GLND_CB *glnd_cb, 
GLND_RESOURCE_INFO *res_info)
 
        /* decrement the local reference */
        while (grant_list != NULL) {
+               bool orphaned = false;
+
                if ((grant_list->lock_info.lockFlags & SA_LCK_LOCK_ORPHAN) ==
                    SA_LCK_LOCK_ORPHAN) {
                        if (grant_list->lock_info.lock_type ==
@@ -204,22 +208,28 @@ uint32_t glnd_set_orphan_state(GLND_CB *glnd_cb, 
GLND_RESOURCE_INFO *res_info)
                            SA_LCK_PR_LOCK_MODE)
                                res_info->lck_master_info.pr_orphaned = true;
 
+                       orphaned = res_info->lck_master_info.ex_orphaned ||
+                                       res_info->lck_master_info.pr_orphaned;
+
                        glnd_restart_resource_info_ckpt_overwrite(glnd_cb,
                                                                  res_info);
-                       /* send notification to the GLD about the orphan locks
+               }
+
+               /* send notification to the GLD about the orphan locks
                         */
-                       GLSV_GLD_EVT gld_evt;
+               GLSV_GLD_EVT gld_evt;
 
-                       memset(&gld_evt, 0, sizeof(GLSV_GLD_EVT));
-                       m_GLND_RESOURCE_LCK_FILL(
+               memset(&gld_evt, 0, sizeof(GLSV_GLD_EVT));
+               m_GLND_RESOURCE_LCK_FILL(
                            gld_evt, GLSV_GLD_EVT_SET_ORPHAN,
-                           res_info->resource_id, true,
+                           res_info->resource_id, orphaned,
                            grant_list->lock_info.lock_type);
-                       glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
+               glnd_mds_msg_send_gld(glnd_cb, &gld_evt,
                                              glnd_cb->gld_mdest_id);
-               }
                grant_list = grant_list->next;
        }
+
+       TRACE_LEAVE();
        return NCSCC_RC_SUCCESS;
 }
 
-- 
2.13.6


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to