[pnfs] [PATCH 2/2] pnfs: Release nfs4_client structure held by DS on unmount

Ricardo Labiaga ricardo.labiaga at netapp.com
Tue Mar 4 19:03:15 EST 2008


From: Ricardo Labiaga <Ricardo.Labiaga at netapp.com>

Every Data Server "connection" holds an nfs4_client structure that is
not being freed at unmount time.  This patch fixes this memory leak.
In addition, fix an nfs4_client leak in decode_and_add_device if
decode_device fails.

Signed-off-by: Andy Adamson<andros at umich.edu>
Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga at netapp.com>
---
 fs/nfs/nfs4filelayoutdev.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/nfs4filelayoutdev.c b/fs/nfs/nfs4filelayoutdev.c
index 479bb77..4d59311 100644
--- a/fs/nfs/nfs4filelayoutdev.c
+++ b/fs/nfs/nfs4filelayoutdev.c
@@ -306,6 +306,7 @@ destroy_ds(struct nfs4_pnfs_ds *ds)
 					  ds->ds_clp->cl_rpcclient);
 		rpc_shutdown_client(ds->ds_clp->cl_rpcclient);
 		ds->ds_clp->cl_rpcclient = NULL;
+		nfs_put_client(ds->ds_clp);
 	}
 	kfree(ds);
 }
@@ -609,6 +610,7 @@ decode_and_add_device(struct filelayout_mount_type *mt, struct pnfs_device *dev)
 	if (!file_dev) {
 		printk(KERN_WARNING "%s Could not decode device\n",
 					__FUNCTION__);
+		device_destroy(file_dev, mt->hlist);
 		return NULL;
 	}
 
-- 
1.5.3.3



More information about the pNFS mailing list