twx-linux/drivers
Andre Noll 852c8bf484 md: Fix a bug in linear.c causing which_dev() to return the wrong device.
ab5bd5cbc8d4b868378d062eed3d4240930fbb86 introduced the following
bug in linear software raid for large arrays on 32 bit machines:

which_dev() computes the device holding a given sector by shifting
down the sector number to a 32 bit range, dividing by the array
spacing and looking up the resulting index in the hash table of
the array.

Because the computed index might be slightly too small, a loop at
the end of which_dev() increases the index until the given sector
actually falls into the range of the device associated with that index.

The changes of the above mentioned commit caused this loop to check
whether the _index_ rather than the sector number is small enough,
effectively bypassing the loop and thus possibly returning the wrong
device.

As reported by Simon Kirby, this leads to errors such as

	linear_make_request: Sector 2340486136 out of bounds on dev sdi: 156301312 sectors, offset 2109870464

Fix this bug by introducing a local variable for the index so that
the variable containing the passed sector is left unchanged.

Cc: stable@kernel.org
Signed-off-by: Andre Noll <maan@systemlinux.org>
Signed-off-by: NeilBrown <neilb@suse.de>
2009-02-06 15:10:52 +11:00
..
accessibility
acpi
amba
ata Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
atm
auxdisplay
base
block
bluetooth
cdrom
char Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-02-03 16:52:10 -08:00
clocksource
connector
cpufreq
cpuidle
crypto
dca dca: redesign locks to fix deadlocks 2009-02-02 23:26:57 -08:00
dio
dma
edac
eisa
firewire
firmware
gpio
gpu
hid
hwmon
i2c
ide Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
idle
ieee1394
infiniband
input
isdn
leds
lguest
macintosh
mca
md md: Fix a bug in linear.c causing which_dev() to return the wrong device. 2009-02-06 15:10:52 +11:00
media V4L/DVB (10411): s5h1409: Perform s5h1409 soft reset after tuning 2009-02-01 10:41:02 -02:00
memstick
message
mfd
misc sgi-xp: link XPNET's net_device_ops to its net_device structure 2009-02-03 15:16:48 -08:00
mmc pxamci: enable DMA for write ops after CMD/RESP 2009-02-02 20:57:07 +01:00
mtd Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-02-03 16:52:10 -08:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-02-04 07:52:21 -08:00
nubus
of
oprofile
parisc
parport
pci
pcmcia
platform
pnp
power
ps3
rapidio
regulator
rtc
s390
sbus
scsi
serial
sh
sn
spi
ssb
staging
tc
telephony
thermal
uio
usb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream 2009-02-02 17:52:39 +00:00
uwb
video Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-02-02 19:26:44 -08:00
virtio virtio-pci: do not oops on config change if driver not loaded 2009-02-02 19:17:56 -08:00
w1
watchdog
xen
zorro
Kconfig
Makefile