aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/rpc_pipe.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 13:44:09 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 13:44:09 -0500
commit12de3b35ea549c5819f287508d7afab0bf3ac44d (patch)
treec1b7f96236c4b19bcd911705017bf31bcbc2b605 /net/sunrpc/rpc_pipe.c
parent24c5d9d7ea5a64fb5f157d17aa2c67a3300f8a08 (diff)
SUNRPC: Ensure that rpc_mkpipe returns a refcounted dentry
If not, we cannot guarantee that idmap->idmap_dentry, gss_auth->dentry and clnt->cl_dentry are valid dentries. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/rpc_pipe.c')
-rw-r--r--net/sunrpc/rpc_pipe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 567abbe25bc8..72b22172f0af 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -669,7 +669,7 @@ rpc_mkdir(char *path, struct rpc_clnt *rpc_client)
669out: 669out:
670 mutex_unlock(&dir->i_mutex); 670 mutex_unlock(&dir->i_mutex);
671 rpc_release_path(&nd); 671 rpc_release_path(&nd);
672 return dentry; 672 return dget(dentry);
673err_depopulate: 673err_depopulate:
674 rpc_depopulate(dentry); 674 rpc_depopulate(dentry);
675 __rpc_rmdir(dir, dentry); 675 __rpc_rmdir(dir, dentry);
@@ -733,7 +733,7 @@ rpc_mkpipe(char *path, void *private, struct rpc_pipe_ops *ops, int flags)
733out: 733out:
734 mutex_unlock(&dir->i_mutex); 734 mutex_unlock(&dir->i_mutex);
735 rpc_release_path(&nd); 735 rpc_release_path(&nd);
736 return dentry; 736 return dget(dentry);
737err_dput: 737err_dput:
738 dput(dentry); 738 dput(dentry);
739 dentry = ERR_PTR(-ENOMEM); 739 dentry = ERR_PTR(-ENOMEM);