diff mbox

[v3,101/110] namei: make put_link() RCU-safe

Message ID 1431367690-5223-101-git-send-email-viro@ZenIV.linux.org.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Al Viro May 11, 2015, 6:08 p.m. UTC
From: Al Viro <viro@zeniv.linux.org.uk>

very simple - just make path_put() conditional on !RCU.
Note that right now it doesn't get called in RCU mode -
we leave it before getting anything into stack.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 fs/namei.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/fs/namei.c b/fs/namei.c
index 4303404..998c3c2 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -750,7 +750,8 @@  static inline void put_link(struct nameidata *nd)
 	struct inode *inode = last->inode;
 	if (last->cookie && inode->i_op->put_link)
 		inode->i_op->put_link(inode, last->cookie);
-	path_put(&last->link);
+	if (!(nd->flags & LOOKUP_RCU))
+		path_put(&last->link);
 }
 
 int sysctl_protected_symlinks __read_mostly = 0;