diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2020-10-01 14:11:00 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2020-10-25 20:02:07 -0400 |
commit | b62d2706a754887800a7cec4eb0592a9263a38fc (patch) | |
tree | 7d9dea46a1883281abb51c5ef7ff4c76461a6a84 /fs/eventpoll.c | |
parent | 44cdc1d952e3f7aa9944c1bbf38fc23f49885017 (diff) | |
download | lwn-b62d2706a754887800a7cec4eb0592a9263a38fc.tar.gz lwn-b62d2706a754887800a7cec4eb0592a9263a38fc.zip |
lift rcu_read_lock() into reverse_path_check()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/eventpoll.c')
-rw-r--r-- | fs/eventpoll.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index c40576e62728..06674515132c 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1257,7 +1257,6 @@ static int reverse_path_check_proc(struct file *file, int depth) return -1; /* CTL_DEL can remove links here, but that can't increase our count */ - rcu_read_lock(); hlist_for_each_entry_rcu(epi, &file->f_ep_links, fllink) { struct file *recepient = epi->ep->file; if (WARN_ON(!is_file_epoll(recepient))) @@ -1269,7 +1268,6 @@ static int reverse_path_check_proc(struct file *file, int depth) if (error != 0) break; } - rcu_read_unlock(); return error; } @@ -1291,7 +1289,9 @@ static int reverse_path_check(void) /* let's call this for all tfiles */ list_for_each_entry(current_file, &tfile_check_list, f_tfile_llink) { path_count_init(); + rcu_read_lock(); error = reverse_path_check_proc(current_file, 0); + rcu_read_unlock(); if (error) break; } |