Thanks Daniel. I see it being initialized. But then it is overwritten
from saved_ctx, right?

https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c#L1161

On 8/4/17, Daniel Gryniewicz <d...@redhat.com> wrote:
> Here:
>
> https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c#L1127
>
> On 08/04/2017 10:36 AM, Pradeep wrote:
>> Hi Daniel,
>>
>> I could not find where op_ctx gets populated in lru_run_lane(). I'm using
>> 2.5.1.
>>
>> https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c#L1019
>>
>> On 8/4/17, Daniel Gryniewicz <d...@redhat.com> wrote:
>>> It should be valid.  lru_run_lane() sets up op_ctx, so it should be set
>>> correctly even in the LRU thread case.
>>>
>>> Daniel
>>>
>>> On 08/04/2017 09:54 AM, Pradeep wrote:
>>>> It looks like the assert() below and the comment in
>>>> mdcache_lru_clean() may not be valid in all cases. For example, if
>>>> cache is getting cleaned in the context of the LRU background thread,
>>>> the op_ctx will be NULL and the code may get into the 'else' part
>>>> (lru_run() -> lru_run_lane() -> _mdcache_lru_unref() ->
>>>> mdcache_lru_clean()):
>>>>
>>>> Do any of the calls after the 'if-else' block use 'op_ctx'? If those
>>>> don't us 'op_ctx', the 'else' part can be safely removed, right?
>>>>
>>>>                  if (export_id >= 0 && op_ctx != NULL &&
>>>>                       op_ctx->ctx_export != NULL &&
>>>>                       op_ctx->ctx_export->export_id != export_id) {
>>>> ........
>>>>                   } else {
>>>>                           /* We MUST have a valid op_ctx based on the
>>>> conditions
>>>>                            * we could get here. first_export_id coild be
>>>> -1
>>>> or it
>>>>                            * could match the current op_ctx export. In
>>>> either case
>>>>                            * we will trust the current op_ctx.
>>>>                            */
>>>>                           assert(op_ctx);
>>>>                           assert(op_ctx->ctx_export);
>>>>                           LogFullDebug(COMPONENT_CACHE_INODE,
>>>>                                        "Trusting op_ctx export id
>>>> %"PRIu16,
>>>>                                        op_ctx->ctx_export->export_id);
>>>> ....
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>> _______________________________________________
>>>> Nfs-ganesha-devel mailing list
>>>> Nfs-ganesha-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Nfs-ganesha-devel mailing list
>>> Nfs-ganesha-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
>>>
>
>

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

Reply via email to