linux/include
Alexander Viro 991114c6fa [PATCH] fix for prune_icache()/forced final iput() races
Based on analysis and a patch from Russ Weight <rweight@us.ibm.com>

There is a race condition that can occur if an inode is allocated and then
released (using iput) during the ->fill_super functions.  The race
condition is between kswapd and mount.

For most filesystems this can only happen in an error path when kswapd is
running concurrently.  For isofs, however, the error can occur in a more
common code path (which is how the bug was found).

The logic here is "we want final iput() to free inode *now* instead of
letting it sit in cache if fs is going down or had not quite come up".  The
problem is with kswapd seeing such inodes in the middle of being killed and
happily taking over.

The clean solution would be to tell kswapd to leave those inodes alone and
let our final iput deal with them.  I.e.  add a new flag
(I_FORCED_FREEING), set it before write_inode_now() there and make
prune_icache() leave those alone.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23 09:45:17 -07:00
..
acpi
asm-alpha [PATCH] remove non-DISCONTIG use of pgdat->node_mem_map 2005-06-23 09:45:00 -07:00
asm-arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-22 14:51:06 -07:00
asm-arm26 [PATCH] Remove obsolete HAVE_ARCH_GET_SIGNAL_TO_DELIVER? 2005-06-12 20:43:21 -07:00
asm-cris [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
asm-frv [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
asm-generic [PATCH] x86/x86_64: pcibus_to_node 2005-06-23 09:45:08 -07:00
asm-h8300 [PATCH] h8300 build error fix 2005-06-06 14:42:23 -07:00
asm-i386 [PATCH] xen: x86: Rename usermode macro 2005-06-23 09:45:14 -07:00
asm-ia64 [PATCH] ia64: Selectable Timer Interrupt Frequency 2005-06-23 09:45:10 -07:00
asm-m32r [PATCH] m32r: build fix for asm-m32r/topology.h 2005-06-23 09:45:08 -07:00
asm-m68k [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
asm-m68knommu [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
asm-mips [PATCH] mips: add vr41xx gpio support 2005-06-21 18:46:32 -07:00
asm-parisc [PATCH] remove non-DISCONTIG use of pgdat->node_mem_map 2005-06-23 09:45:00 -07:00
asm-ppc [PATCH] ppc32: Clean up NUM_TLBCAMS usage for Freescale Book-E PPC's 2005-06-21 18:46:24 -07:00
asm-ppc64 [PATCH] ppc64: pcibus_to_node fix 2005-06-23 09:45:08 -07:00
asm-s390 [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
asm-sh [PATCH] Hugepage consolidation 2005-06-21 18:46:15 -07:00
asm-sh64 [PATCH] Hugepage consolidation 2005-06-21 18:46:15 -07:00
asm-sparc [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
asm-sparc64 [PATCH] Hugepage consolidation 2005-06-21 18:46:15 -07:00
asm-um [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
asm-v850 [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
asm-x86_64 [PATCH] xen: x86_64: Add macro for debugreg 2005-06-23 09:45:14 -07:00
linux [PATCH] fix for prune_icache()/forced final iput() races 2005-06-23 09:45:17 -07:00
math-emu
media [PATCH] dvb: modified dvb_register_adapter() to avoid kmalloc/kfree 2005-05-17 07:59:33 -07:00
mtd
net [X25]: Fast select with no restriction on response 2005-06-22 22:16:17 -07:00
pcmcia
rxrpc
scsi Automatic merge of ../scsi-misc-2.6-old/ 2005-05-26 14:14:55 -04:00
sound [ALSA] Add const prefix 2005-06-22 12:28:54 +02:00
video