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 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; -- cgit v0.10.2