From: Al Viro Date: Fri, 8 May 2015 00:32:22 +0000 (-0400) Subject: namei: make put_link() RCU-safe X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6548fae2eca6b66c7257af6663fdbdf5a50745fd;p=linux-beck.git 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 --- 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;