Searched hist:c443acab2eebf12dce7e78fe29e76786f55ad1be (Results 1 – 1 of 1) sorted by relevance
/linux/arch/powerpc/platforms/cell/spufs/ |
H A D | inode.c | diff c443acab2eebf12dce7e78fe29e76786f55ad1be Fri Nov 16 03:32:23 CET 2007 Jeremy Kerr <jk@ozlabs.org> [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>
|