rpc_pipe: remove the clntXX dir if creating the pipe fails
authorJeff Layton <jlayton@redhat.com>
Thu, 5 Dec 2013 12:33:49 +0000 (07:33 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 6 Dec 2013 18:06:33 +0000 (13:06 -0500)
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>
net/sunrpc/rpc_pipe.c

index 5cd7ad1225a3668c93b451a2e4a10400a0efccb9..0b74c61db7b418741a0fb736bdec1e42b0d17d95 100644 (file)
@@ -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);