[Openais] [PATCH]: openais/trunk: Only send response/callback when unlocking pending locks
Jan Friesse
jfriesse at redhat.com
Wed Jun 10 08:08:31 PDT 2009
Yes it really works in that test case.
Ryan O'Hara wrote:
> On Wed, Jun 10, 2009 at 04:20:51PM +0200, Jan Friesse wrote:
>> Ryan,
>> this patch breaks SAF Test SaLckLockGrantCallbackT/10.c, and there is
>> no close before unlock. I made a patch, but I'm really not sure about
>> correctness.
>
> Does that patch work? Does it fix that particular test case? It is an
> interesting idea -- but I am not sure the code can/will ever to this
> far with a lock that does not exist. I need to think about this a bit
> more.
>
>
>
>> Regards,
>> Honza
>>
>> Ryan O'Hara wrote:
>>> When unlocking a pending lock request, we must send a response (or
>>> callback) to the library indicating an error occured. This patch
>>> simply adds a check that the lock is pending before we send the
>>> response.
>>>
>>> Without this fix, callbacks are sent when they are not needed. For
>>> example, if we close a resource while holding locks we will hit this
>>> code (in lck_unlock) that will incorrectly send callbacks to the
>>> library.
>>>
>>> Ryan
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Openais mailing list
>>> Openais at lists.linux-foundation.org
>>> https://lists.linux-foundation.org/mailman/listinfo/openais
>
>> diff --git a/trunk/services/lck.c b/trunk/services/lck.c
>> index 0e65ba1..6f85111 100644
>> --- a/trunk/services/lck.c
>> +++ b/trunk/services/lck.c
>> @@ -1819,9 +1819,8 @@ static void lck_unlock (
>> api->timer_delete (resource_lock->timer_handle);
>> lck_resourcelock_response_send (resource_lock, SA_AIS_ERR_TIMEOUT);
>> }
>> - else {
>> - lck_lockgrant_callback_send (resource_lock, SA_AIS_ERR_NOT_EXIST);
>> - }
>> + } else {
>> + lck_lockgrant_callback_send (resource_lock, SA_AIS_ERR_NOT_EXIST);
>> }
>> }
>>
>
More information about the Openais
mailing list