lkml.org 
[lkml]   [2015]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v3 101/110] namei: make put_link() RCU-safe
Date
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


\
 
 \ /
  Last update: 2015-05-11 20:41    [W:0.758 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site