linux/drivers
NeilBrown e93f68a1fc md: fix handling of array level takeover that re-arranges devices.
Most array level changes leave the list of devices largely unchanged,
possibly causing one at the end to become redundant.
However conversions between RAID0 and RAID10 need to renumber
all devices (except 0).

This renumbering is currently being done in the ->run method when the
new personality takes over.  However this is too late as the common
code in md.c might already have invalidated some of the devices if
they had a ->raid_disk number that appeared to high.

Moving it into the ->takeover method is too early as the array is
still active at that time and wrong ->raid_disk numbers could cause
confusion.

So add a ->new_raid_disk field to mdk_rdev_s and use it to communicate
the new raid_disk number.
Now the common code knows exactly which devices need to be renumbered,
and which can be invalidated, and can do it all at a convenient time
when the array is suspend.
It can also update some symlinks in sysfs which previously were not be
updated correctly.

Reported-by: Maciej Trela <maciej.trela@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2010-06-24 13:33:24 +10:00
..
accessibility
acpi Merge branch 'acpi-idle' into release 2010-06-04 15:23:02 -04:00
amba
ata sata_sil24: Use memory barriers before issuing commands 2010-06-10 16:06:48 -04:00
atm Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
auxdisplay auxdisplay: section cleanup in cfag12864bfb driver 2010-05-25 08:07:09 -07:00
base topology: convert cpu notifier to return encapsulate errno value 2010-05-27 09:12:48 -07:00
block Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2010-06-04 15:37:44 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
cdrom
char Revert "tty: fix a little bug in scrup, vt.c" 2010-06-06 20:44:04 -07:00
clocksource clocksource: sh_cmt: compute mult and shift before registration 2010-06-02 17:10:44 +09:00
connector
cpufreq
cpuidle Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-05-28 16:14:17 -07:00
crypto crypto: crypto4xx - Fix build breakage 2010-06-03 16:57:24 +10:00
dca
dio
dma of/dma: fix build breakage in ppc4xx adma driver 2010-06-02 21:02:39 -06:00
edac Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core 2010-06-04 15:39:54 -07:00
eisa
firewire firewire: core: check for 1394a compliant IRM, fix inaccessibility of Sony camcorder 2010-06-02 19:48:13 +02:00
firmware sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
gpio gpio: Fix inverted rdc321x gpio data out registers 2010-05-28 01:37:59 +02:00
gpu Revert "drm/i915: Don't enable pipe/plane/VCO early (wait for DPMS on)." 2010-06-08 20:16:28 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-05-27 09:19:55 -07:00
hwmon i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
i2c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
ide powerpc/macio: Fix probing of macio devices by using the right of match table 2010-06-02 17:50:38 +10:00
idle intel_idle: native hardware cpuidle driver for latest Intel processors 2010-05-28 14:26:20 -04:00
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2010-05-27 10:22:06 -07:00
ieee802154
infiniband fix the deadlock in qib_fs 2010-06-04 17:16:27 -04:00
input hp_sdc_rtc: fix broken ioctl conversion 2010-06-08 22:23:21 +02:00
isdn isdn/kcapi: return -EFAULT on copy_from_user errors 2010-06-03 03:28:22 -07:00
leds i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
lguest
macintosh Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-06-03 15:46:37 -07:00
mca
md md: fix handling of array level takeover that re-arranges devices. 2010-06-24 13:33:24 +10:00
media Merge branch 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2010-06-04 15:38:12 -07:00
memstick
message drivers/message/i2o/i2o_config.c: use memdup_user 2010-05-27 09:12:41 -07:00
mfd i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
misc vmware balloon: clamp number of collected non-balloonable pages 2010-06-04 15:21:44 -07:00
mmc mmc: msm: fix compile error on MSM7x30 2010-06-09 08:51:31 -07:00
mtd Merge git://git.infradead.org/~dwmw2/mtd-2.6.35 2010-06-07 17:10:06 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-06-11 14:20:03 -07:00
nubus
of Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
oprofile
parisc
parport m68k: amiga - Parallel port platform device conversion 2010-05-26 19:51:09 +02:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2010-06-11 14:15:44 -07:00
pcmcia pcmcia: avoid validate_cis failure on CIS override 2010-06-07 18:34:16 +02:00
platform intel_scu_ipc: Length fix 2010-06-01 08:40:47 -07:00
pnp
power i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
pps
ps3
rapidio rapidio: fix new kernel-doc warnings 2010-05-30 09:02:47 -07:00
regulator i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
rtc rtc: s3c: initialize s3c_rtc_cpu_type before using it 2010-06-04 15:21:44 -07:00
s390 [S390] appldata/extmem/kvm: add missing GFP_KERNEL flag 2010-06-08 18:58:23 +02:00
sbus Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing 2010-05-24 08:01:10 -07:00
scsi Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2010-06-03 15:48:15 -07:00
serial serial: add support for various Titan PCI cards 2010-06-04 13:37:18 -07:00
sfi SFI: do not return freed pointer 2010-06-01 12:04:35 -04:00
sh sh: Make intc messages consistent via pr_fmt. 2010-06-02 18:10:00 +09:00
sn
spi of/spi: mpc512x_psc_spi.c: Fix build failures 2010-06-02 13:45:06 -06:00
ssb ssb: fix NULL ptr deref when pcihost_wrapper is used 2010-05-28 13:57:01 -04:00
staging Merge branch 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2010-06-04 15:38:12 -07:00
tc
telephony drivers/telephony/ixj.c: use memdup_user 2010-05-27 09:12:42 -07:00
thermal
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-06-04 15:42:09 -07:00
uwb
vhost misc: Fix allocation 'borrowed' by vhost_net 2010-06-09 08:50:31 -07:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-06-04 15:42:09 -07:00
virtio Merge branch 'virtio' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2010-05-21 17:22:52 -07:00
vlynq
w1 sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
watchdog [PATCH 2/11] drivers/watchdog: Eliminate a NULL pointer dereference 2010-06-07 15:55:03 +00:00
xen xen: avoid allocation causing potential swap activity on the resume path 2010-06-03 09:34:45 +01:00
zorro sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
Kconfig
Makefile intel_idle: native hardware cpuidle driver for latest Intel processors 2010-05-28 14:26:20 -04:00