| From | Al Viro <> | Subject | [PATCH v3 101/110] namei: make put_link() RCU-safe | Date | Mon, 11 May 2015 19:08:01 +0100 |
| |
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 --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; -- 2.1.4
|