From: Al Viro Date: Fri, 30 Nov 2012 03:04:36 +0000 (-0500) Subject: nfs_lookup_revalidate(): fix a leak X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c44600c9d1de64314c2bd58103f15acb53e10073;p=~shefty%2Frdma-dev.git nfs_lookup_revalidate(): fix a leak We are leaking fattr and fhandle if we decide that dentry is not to be invalidated, after all (e.g. happens to be a mountpoint). Just free both before that... Signed-off-by: Al Viro --- diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 99489cfca24..b9e66b7e0c1 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1101,6 +1101,8 @@ out_set_verifier: out_zap_parent: nfs_zap_caches(dir); out_bad: + nfs_free_fattr(fattr); + nfs_free_fhandle(fhandle); nfs_mark_for_revalidate(dir); if (inode && S_ISDIR(inode->i_mode)) { /* Purge readdir caches. */ @@ -1113,8 +1115,6 @@ out_zap_parent: shrink_dcache_parent(dentry); } d_drop(dentry); - nfs_free_fattr(fattr); - nfs_free_fhandle(fhandle); dput(parent); dfprintk(LOOKUPCACHE, "NFS: %s(%s/%s) is invalid\n", __func__, dentry->d_parent->d_name.name,