diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-06-26 00:25:49 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 09:58:25 -0700 |
commit | cd6a3ce9ec040c0b56ea92a81ff710417798c559 (patch) | |
tree | 350c0b4bb63a971c9409be8459a45b690ef4ac67 /mm/rmap.c | |
parent | 48e6484d49020dba3578ad117b461e8a391e8f0f (diff) |
[PATCH] proc: Close the race of a process dying durning lookup
proc_lookup and task exiting are not synchronized, although some of the
previous code may have suggested that. Every time before we reuse a dentry
namei.c calls d_op->derevalidate which prevents us from reusing a stale dcache
entry. Unfortunately it does not prevent us from returning a stale dcache
entry. This race has been explicitly plugged in proc_pid_lookup but there is
nothing to confine it to just that proc lookup function.
So to prevent the race I call revalidate explictily in all of the proc lookup
functions after I call d_add, and report an error if the revalidate does not
succeed.
Years ago Al Viro did something similar but those changes got lost in the
churn.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/rmap.c')
0 files changed, 0 insertions, 0 deletions