From 6548fae2eca6b66c7257af6663fdbdf5a50745fd Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 7 May 2015 20:32:22 -0400 Subject: namei: make put_link() RCU-safe 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 --- fs/namei.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/namei.c b/fs/namei.c index 43034046a0e1..998c3c2c9488 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; -- cgit v1.2.3