original_kernel/arch/powerpc/platforms/cell/spufs
Jeremy Kerr c443acab2e [POWERPC] spufs: Fix context destroy vs /spu readdir race
We can currently cause an oops by repeatedly creating and destroying
contexts, while doing getdents() calls on the "/spu" directory.

This is due to the context's top-level dentry remaining hashed while
the context is being destroyed.

Fix this by unhashing the context's dentry with the
dentry->d_inode->i_mutex held. This way, we'll hit the check for
d_unhashed in dentry_readdir, and won't be included in the
list of subdirs for /spu.

test: spufs-testsuite:tests/01-spu_create/07-destroy-vs-readdir-race

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-11-20 16:10:20 +11:00
..
Makefile
backing_ops.c
context.c
coredump.c
fault.c
file.c
gang.c
hw_ops.c
inode.c [POWERPC] spufs: Fix context destroy vs /spu readdir race 2007-11-20 16:10:20 +11:00
lscsa_alloc.c
run.c
sched.c
spu_restore.c
spu_restore_crt0.S
spu_restore_dump.h_shipped
spu_save.c
spu_save_crt0.S
spu_save_dump.h_shipped
spu_utils.h
spufs.h
switch.c
syscalls.c