Neil Brown
da6e1a32fb
[PATCH] md: avoid possible BUG_ON in md bitmap handling
...
md/bitmap tracks how many active write requests are pending on blocks
associated with each bit in the bitmap, so that it knows when it can clear
the bit (when count hits zero).
The counter has 14 bits of space, so if there are ever more than 16383, we
cannot cope.
Currently the code just calles BUG_ON as "all" drivers have request queue
limits much smaller than this.
However is seems that some don't. Apparently some multipath configurations
can allow more than 16383 concurrent write requests.
So, in this unlikely situation, instead of calling BUG_ON we now wait
for the count to drop down a bit. This requires a new wait_queue_head,
some waiting code, and a wakeup call.
Tested by limiting the counter to 20 instead of 16383 (writes go a lot slower
in that case...).
Signed-off-by: Neil Brown <neilb@suse.de>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-09 09:25:47 -08:00
..
acpi
Pull sysfs into test branch
2007-02-03 01:14:35 -05:00
asm-alpha
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-arm
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-arm26
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-avr32
[AVR32] ssize_t should be long, not int
2007-02-09 15:01:59 +01:00
asm-cris
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-frv
[PATCH] fix frv headers_check
2007-02-01 16:17:05 -08:00
asm-generic
Fix Maple PATA IRQ assignment.
2007-01-26 17:27:40 -05:00
asm-h8300
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-i386
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-ia64
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
2007-02-07 19:23:44 -08:00
asm-m32r
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-m68k
[PATCH] m68k: uaccess.h needs sched.h
2007-01-30 08:26:45 -08:00
asm-m68knommu
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-mips
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-tc
2007-02-09 09:22:36 -08:00
asm-parisc
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-powerpc
[POWERPC] Add mpc52xx/lite5200 PCI support
2007-02-08 15:29:22 +11:00
asm-ppc
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-s390
[S390] Mark kernel text section read-only.
2007-02-05 21:18:41 +01:00
asm-sh
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-sh64
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-sparc
[SPARC32]: Fix over-optimization by GCC near ip_fast_csum.
2007-02-01 20:24:35 -08:00
asm-sparc64
[SPARC64]: Fix of_iounmap() region release.
2006-12-31 14:06:05 -08:00
asm-um
[PATCH] uml-i386: fix build breakage with CONFIG_HIGHMEM
2007-02-01 16:17:06 -08:00
asm-v850
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
asm-x86_64
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
asm-xtensa
[PATCH] FD_ZERO build fix
2007-01-11 18:18:22 -08:00
crypto
[CRYPTO] api: Allow multiple frontends per backend
2007-02-07 09:21:01 +11:00
keys
linux
[PATCH] md: avoid possible BUG_ON in md bitmap handling
2007-02-09 09:25:47 -08:00
math-emu
media
V4L/DVB (5001): Add two required headers on kernel 2.6.20-rc1
2006-12-27 14:20:46 -02:00
mtd
net
[NET]: change layout of ehash table
2007-02-08 14:16:46 -08:00
pcmcia
Driver core: convert pcmcia code to use struct device
2007-02-07 10:37:11 -08:00
rdma
IB: Make sure struct ib_user_mad.data is aligned
2007-02-04 14:11:56 -08:00
rxrpc
scsi
[PATCH] iscsi endianness annotations
2007-02-09 09:14:07 -08:00
sound
[PATCH] Fix breakage with CONFIG_SYSFS_DEPRECATED
2007-02-09 16:25:48 +01:00
video
[PATCH] sstfb: add sysfs interface
2006-12-13 09:05:55 -08:00
Kbuild