Hi Hoa,

Ack from me with minor suggestion, started with [Vu].

Regards, Vu

> -----Original Message-----
> From: Hoa Le [mailto:hoa...@dektech.com.au]
> Sent: Friday, April 6, 2018 10:52 AM
> To: ravisekhar.ko...@oracle.com; vu.m.ngu...@dektech.com.au;
> zoran.milinko...@ericsson.com
> Cc: opensaf-devel@lists.sourceforge.net; Hoa Le <hoa...@dektech.com.au>
> Subject: [PATCH 1/1] imma: Do not finalize previously instialized
> privateOmHandle in saImmOiAugmentCcbInitialize [#2827]
> 
> Currently in saImmOiAugmentCcbInitialize, if OI augmented ccb handle
> initialization request does not result in OK or TRY_AGAIN, the
> privateOmHandle will be finalized and the private OM will be destroyed.
> 
> That is fine if the privateOmHandle is initialized in the current
> session. But if the privateOmHandle was already initialized in another
> previous callback, which means the privateOmHandle record was added to
> imma_oi_ccb_record of the corresponding client node, finalizing this
> privateOmHandle without cleaning-up imma_oi_ccb_record may call up
> unexpected behavior of the Implementer.
> 
> This patch checks if the privateOmHandle is the previous initialized
> privateOmHandle to avoid finalizing it. This privateOmHandle will be
> automatically finalized and cleanup-up in CCB abort or CCB apply.
> ---
>  src/imm/agent/imma_oi_api.cc | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/src/imm/agent/imma_oi_api.cc b/src/imm/agent/imma_oi_api.cc
> index 29fb39d..187e891 100644
> --- a/src/imm/agent/imma_oi_api.cc
> +++ b/src/imm/agent/imma_oi_api.cc
> @@ -4098,9 +4098,11 @@ done:
>      TRACE("ownerHandle:%llx", *ownerHandle);
> 
>    } else if (privateOmHandle) {
> -    osafassert(immsv_om_handle_finalize);
> -    immsv_om_handle_finalize(
> -        privateOmHandle); /* Also finalizes admo handles & ccb handles*/
> +    if (privateOmHandle != ccb_oi_record->privateAugOmHandle) {
[Vu] Is it good to combine 02 `if` conditions into one? Such as:
else if (privateOmHandle && privateOmHandle !=
ccb_oi_record->privateAugOmHandle) {
        osafassert(immsv_om_handle_finalize);
        immsv_om_handle_finalize(privateOmHandle);
}

> +      osafassert(immsv_om_handle_finalize);
> +      immsv_om_handle_finalize(
> +          privateOmHandle); /* Also finalizes admo handles & ccb
handles*/
> +    }
>    }
> 
>    if (out_evt) {
> --
> 2.7.4



------------------------------------------------------------------------------
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