>On Tue, May 2, 2017 at 11:51 AM, Malahal Naineni <mala...@gmail.com> wrote:
> Sorry, every cacheable request holds a ref on its DRC as well as its DUPREQ.
> The ref on DUPREQ should be released when the request goes away (via
> nfs_dupreq_rele). The ref on DRC will be released when the corresponding
> DUPREQ request gets released. Since we release DUPREQs while processing
> other requests, you are right that the DRC won't be freed if there are no
> more requests that would use the same DRC.

Ok.

> I think we should be freeing dupreq periodically using a timed function,
> something like that drc_free_expired.

Refcnt of the dupreq entries within the stale drc (of the disconnect
client) is +ve since it starts at 2 (it is decremented once in
nfs_dupreq_rele).
First the refcnt of the dupreq_entries should be decremented and freed
when it reaches 0. On freeing a dupreq entry, refcnt of drc should be
decremented.

All of the above should happen in free_expired or a similar function.

> Regards, Malahal.

Thanks,
Satya.

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