OpenCloudOS-Kernel/fs/proc
Steven Rostedt 64a07bd82e [PATCH] protect remove_proc_entry
It has been discovered that the remove_proc_entry has a race in the removing
of entries in the proc file system that are siblings.  There's no protection
around the traversing and removing of elements that belong in the same
subdirectory.

This subdirectory list is protected in other areas by the BKL.  So the BKL was
at first used to protect this area too, but unfortunately, remove_proc_entry
may be called with spinlocks held.  The BKL may schedule, so this was not a
solution.

The final solution was to add a new global spin lock to protect this list,
called proc_subdir_lock.  This lock now protects the list in
remove_proc_entry, and I also went around looking for other areas that this
list is modified and added this protection there too.  Care must be taken
since these locations call several functions that may also schedule.

Since I don't see any location that these functions that modify the
subdirectory list are called by interrupts, the irqsave/restore versions of
the spin lock was _not_ used.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:56:53 -08:00
..
Makefile [PATCH] kdump: Access dump file in elf format (/proc/vmcore) 2005-06-25 16:24:53 -07:00
array.c [PATCH] hrtimer: switch itimers to hrtimer 2006-01-10 08:01:38 -08:00
base.c VFS: New /proc file /proc/self/mountstats 2006-03-20 13:44:12 -05:00
generic.c [PATCH] protect remove_proc_entry 2006-03-26 08:56:53 -08:00
inode-alloc.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inode.c [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
internal.h [PATCH] fs/proc/: function prototypes belong in header files 2006-01-08 20:14:03 -08:00
kcore.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
kmsg.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu.c [PATCH] fix impossible VmallocChunk 2005-05-17 07:59:10 -07:00
nommu.c [PATCH] output of /proc/maps on nommu systems is incomplete 2005-10-17 17:03:57 -07:00
proc_devtree.c [PATCH] protect remove_proc_entry 2006-03-26 08:56:53 -08:00
proc_misc.c [PATCH] slab: implement /proc/slab_allocators 2006-03-25 08:22:49 -08:00
proc_tty.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
root.c [PATCH] fix handling of st_nlink on procfs root 2006-02-18 15:54:36 -05:00
task_mmu.c [PATCH] smaps: shared fix 2006-03-06 18:40:45 -08:00
task_nommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vmcore.c [PATCH] kdump: vmcore compilation warning fix 2006-01-11 18:42:11 -08:00