summaryrefslogtreecommitdiff
path: root/net/sunrpc/rpc_pipe.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2013-12-05 07:33:49 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-12-06 13:06:33 -0500
commit3396f92f8be606ea485b0a82d4e7749a448b013b (patch)
tree58eb36cf3316ab40d9d85b813bcc205bbf514444 /net/sunrpc/rpc_pipe.c
parent6aa23d76a7b549521a03b63b6d5b7880ea87eab7 (diff)
rpc_pipe: remove the clntXX dir if creating the pipe fails
In the event that we create the gssd/clntXX dir, but the pipe creation subsequently fails, then we should remove the clntXX dir before returning. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/rpc_pipe.c')
-rw-r--r--net/sunrpc/rpc_pipe.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 5cd7ad1225a3..0b74c61db7b4 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -1313,6 +1313,8 @@ rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
}
pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
+ if (IS_ERR(pipe_dentry))
+ __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
out:
dput(clnt_dentry);
dput(gssd_dentry);