aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/clnt.c1
-rw-r--r--net/sunrpc/rpc_pipe.c16
2 files changed, 17 insertions, 0 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index ed7c22de9319..4c6848017168 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -222,6 +222,7 @@ static int rpc_pipefs_event(struct notifier_block *nb, unsigned long event,
222 222
223static struct notifier_block rpc_clients_block = { 223static struct notifier_block rpc_clients_block = {
224 .notifier_call = rpc_pipefs_event, 224 .notifier_call = rpc_pipefs_event,
225 .priority = SUNRPC_PIPEFS_RPC_PRIO,
225}; 226};
226 227
227int rpc_clients_notifier_register(void) 228int rpc_clients_notifier_register(void)
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 6b417fcabdbf..bae4e71d8663 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -616,6 +616,22 @@ static int __rpc_rmdir(struct inode *dir, struct dentry *dentry)
616 return ret; 616 return ret;
617} 617}
618 618
619int rpc_rmdir(struct dentry *dentry)
620{
621 struct dentry *parent;
622 struct inode *dir;
623 int error;
624
625 parent = dget_parent(dentry);
626 dir = parent->d_inode;
627 mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
628 error = __rpc_rmdir(dir, dentry);
629 mutex_unlock(&dir->i_mutex);
630 dput(parent);
631 return error;
632}
633EXPORT_SYMBOL_GPL(rpc_rmdir);
634
619static int __rpc_unlink(struct inode *dir, struct dentry *dentry) 635static int __rpc_unlink(struct inode *dir, struct dentry *dentry)
620{ 636{
621 int ret; 637 int ret;