Malahal has uploaded this change for review.

View Change

[WIP] Remove drc field from dupreq and avoid memory leak

Currently dupreq releases a hold on drc on behalf of a req, and it has
access to drc. Since dupreqs will live beyond xprts and these holds
make the drc active not go into recycle queue ever. These dupreqs and
drcs live forever contributing to memory leaks.

It is the request that places a hold on dupreq and drc while calling
nfs_dupreq_start(). The request now releases hold on dupreq and drc
while calling nfs_dupre_rele(). With this, drc refcount will go to zero
when xprt releases drc hold.

Free any dupreqs that are in the drc hash table before freeing the drc
itsef.

Change-Id: I0b8d7798a4bd13d697216a371a90685f58d67820
Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
---
M src/RPCAL/nfs_dupreq.c
M src/include/nfs_dupreq.h
2 files changed, 51 insertions(+), 12 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/29/450129/1

To view, visit change 450129. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I0b8d7798a4bd13d697216a371a90685f58d67820
Gerrit-Change-Number: 450129
Gerrit-PatchSet: 1
Gerrit-Owner: Malahal <malahal@gmail.com>
Gerrit-MessageType: newchange