Hi Neel,

Reviewed the patch.
Ack from me.

BR,

Hung Nguyen - DEK Technologies


--------------------------------------------------------------------------------
From: Neelakanta Reddy [email protected]
Sent: Monday, March 20, 2017 4:35PM
To: Hung Nguyen, Zoran Milinkovic
     [email protected], [email protected]
Cc: Opensaf-devel
     [email protected]
Subject: [PATCH 1 of 1] imm: return ERR_UNAVAILABLE when CLM node is locked, 
for OiObjectimplementerSet/Release[#2373]


  src/imm/agent/imma_oi_api.cc |  14 ++++++++++++++
  1 files changed, 14 insertions(+), 0 deletions(-)


diff --git a/src/imm/agent/imma_oi_api.cc b/src/imm/agent/imma_oi_api.cc
--- a/src/imm/agent/imma_oi_api.cc
+++ b/src/imm/agent/imma_oi_api.cc
@@ -2120,6 +2120,12 @@ static SaAisErrorT object_implementer_se
                goto bad_handle;
        }
  
+       if(cl_node->isImmA2x12 && cl_node->clmExposed){
+               TRACE_2("SA_AIS_ERR_UNAVAILABLE: imma CLM node left the 
cluster");
+               rc = SA_AIS_ERR_UNAVAILABLE;
+               goto clm_left;
+       }
+
        if (cl_node->stale) {
                TRACE_1("Handle %llx is stale", immOiHandle);
                bool resurrected = imma_oi_resurrect(cb, cl_node, &locked, &rc);
@@ -2216,6 +2222,7 @@ static SaAisErrorT object_implementer_se
        osafassert(out_evt->info.imma.type == IMMA_EVT_ND2A_IMM_ERROR);
        rc = out_evt->info.imma.info.errRsp.error;
  
+ clm_left:
   fevs_error:
   bad_handle:
        if (locked)
@@ -2339,6 +2346,12 @@ static SaAisErrorT object_implementer_re
                goto bad_handle;
        }
  
+       if(cl_node->isImmA2x12 && cl_node->clmExposed){
+               TRACE_2("SA_AIS_ERR_UNAVAILABLE: imma CLM node left the 
cluster");
+               rc = SA_AIS_ERR_UNAVAILABLE;
+               goto clm_left;
+       }
+
        if (cl_node->stale) {
                TRACE_1("Handle %llx is stale", immOiHandle);
                bool resurrected = imma_oi_resurrect(cb, cl_node, &locked, &rc);
@@ -2433,6 +2446,7 @@ static SaAisErrorT object_implementer_re
        osafassert(out_evt->info.imma.type == IMMA_EVT_ND2A_IMM_ERROR);
        rc = out_evt->info.imma.info.errRsp.error;
  
+ clm_left:
   fevs_error:
   bad_handle:
        if (locked)


------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to