>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