aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ufs
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2006-06-26 00:25:49 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 09:58:25 -0700
commitcd6a3ce9ec040c0b56ea92a81ff710417798c559 (patch)
tree350c0b4bb63a971c9409be8459a45b690ef4ac67 /fs/ufs
parent48e6484d49020dba3578ad117b461e8a391e8f0f (diff)
downloadkernel_goldelico_gta04-cd6a3ce9ec040c0b56ea92a81ff710417798c559.zip
kernel_goldelico_gta04-cd6a3ce9ec040c0b56ea92a81ff710417798c559.tar.gz
kernel_goldelico_gta04-cd6a3ce9ec040c0b56ea92a81ff710417798c559.tar.bz2
[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 'fs/ufs')
0 files changed, 0 insertions, 0 deletions