59cd0cbc75
Fix the following race: proc_readdir remove_proc_entry ============ ================= spin_lock(&proc_subdir_lock); [choose PDE to start filldir from] spin_unlock(&proc_subdir_lock); spin_lock(&proc_subdir_lock); [find PDE] [free PDE, refcount is 0] spin_unlock(&proc_subdir_lock); /* boom */ if (filldir(dirent, de->name, ... [de_put on error path --adobriyan] Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
array.c | ||
base.c | ||
generic.c | ||
inode-alloc.txt | ||
inode.c | ||
internal.h | ||
kcore.c | ||
kmsg.c | ||
Makefile | ||
mmu.c | ||
nommu.c | ||
proc_devtree.c | ||
proc_misc.c | ||
proc_sysctl.c | ||
proc_tty.c | ||
root.c | ||
task_mmu.c | ||
task_nommu.c | ||
vmcore.c |