linux/drivers/md
NeilBrown 509869c869 md/raid10: fix deadlock with unaligned read during resync
commit 51e9ac7703 upstream.

If the 'bio_split' path in raid10-read is used while
resync/recovery is happening it is possible to deadlock.
Fix this be elevating ->nr_waiting for the duration of both
parts of the split request.

This fixes a bug that has been present since 2.6.22
but has only started manifesting recently for unknown reasons.
It is suitable for and -stable since then.

Reported-by:  Justin Bronder <jsbronder@gentoo.org>
Tested-by:  Justin Bronder <jsbronder@gentoo.org>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-08-13 13:19:36 -07:00
..
raid6test md: drivers/md/unroll.pl replaced with awk analog 2009-10-16 16:25:19 +11:00
.gitignore
bitmap.c md/bitmap: protect against bitmap removal while being updated. 2009-12-18 14:04:11 -08:00
bitmap.h md/bitmap: protect against bitmap removal while being updated. 2009-12-18 14:04:11 -08:00
dm-bio-record.h
dm-crypt.c dm crypt: make wipe message also wipe essiv key 2009-12-18 14:05:04 -08:00
dm-delay.c dm table: pass correct dev area size to device_area_is_valid 2009-07-23 20:30:42 +01:00
dm-exception-store.c dm exception store: free tmp_store on persistent flag error 2009-12-18 14:04:59 -08:00
dm-exception-store.h dm snapshot: simplify sector_to_chunk expression 2010-07-05 11:11:20 -07:00
dm-io.c
dm-ioctl.c dm: avoid _hash_lock deadlock 2009-12-18 14:05:02 -08:00
dm-kcopyd.c
dm-linear.c dm table: pass correct dev area size to device_area_is_valid 2009-07-23 20:30:42 +01:00
dm-log-userspace-base.c dm log: userspace fix incorrect luid cast in userspace_ctr 2009-10-16 23:18:15 +01:00
dm-log-userspace-transfer.c dm log: userspace fix overhead_size calcuations 2010-02-23 07:37:58 -08:00
dm-log-userspace-transfer.h dm log: userspace add luid to distinguish between concurrent log instances 2009-09-04 20:40:34 +01:00
dm-log.c
dm-mpath.c [SCSI] scsi_dh: Use scsi_dh_set_params() in multipath. 2009-08-22 17:52:15 -05:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid1.c bio: first step in sanitizing the bio->bi_rw flag testing 2009-09-11 14:33:31 +02:00
dm-region-hash.c
dm-round-robin.c
dm-service-time.c
dm-snap-persistent.c dm snapshot: use unsigned integer chunk size 2009-10-16 23:18:17 +01:00
dm-snap-transient.c
dm-snap.c dm snapshot: cope with chunk size larger than origin 2009-12-18 14:05:02 -08:00
dm-stripe.c dm stripe: avoid divide by zero with invalid stripe count 2010-02-23 07:37:58 -08:00
dm-sysfs.c
dm-table.c DM: Fix device mapper topology stacking 2010-01-25 10:49:41 -08:00
dm-target.c
dm-uevent.c dm: avoid _hash_lock deadlock 2009-12-18 14:05:02 -08:00
dm-uevent.h
dm-zero.c
dm.c dm mpath: fix stall when requeueing io 2010-04-26 07:41:29 -07:00
dm.h dm: remove queue next_ordered workaround for barriers 2009-07-23 20:30:40 +01:00
faulty.c
Kconfig Merge branch 'dmaengine' into async-tx-next 2009-09-08 17:55:21 -07:00
linear.c md: deal with merge_bvec_fn in component devices better. 2010-04-26 07:41:35 -07:00
linear.h
Makefile md: drivers/md/unroll.pl replaced with awk analog 2009-10-16 16:25:19 +11:00
md.c md: set mddev readonly flag on blkdev BLKROSET ioctl 2010-07-05 11:10:46 -07:00
md.h md/bitmap: protect against bitmap removal while being updated. 2009-12-18 14:04:11 -08:00
mktables.c
multipath.c md: deal with merge_bvec_fn in component devices better. 2010-04-26 07:41:35 -07:00
multipath.h
raid1.c md: Fix read balancing in RAID1 and RAID10 on drives > 2TB 2010-07-05 11:10:46 -07:00
raid1.h
raid5.c md/raid6: Fix raid-6 read-error correction in degraded state 2010-05-12 14:57:15 -07:00
raid5.h md: fix problems with RAID6 calculations for DDF. 2009-10-16 16:27:34 +11:00
raid6algos.c
raid6altivec.uc md: drivers/md/unroll.pl replaced with awk analog 2009-10-16 16:25:19 +11:00
raid6int.uc md: drivers/md/unroll.pl replaced with awk analog 2009-10-16 16:25:19 +11:00
raid6mmx.c
raid6recov.c
raid6sse1.c
raid6sse2.c
raid6x86.h
raid10.c md/raid10: fix deadlock with unaligned read during resync 2010-08-13 13:19:36 -07:00
raid10.h
raid0.c md: deal with merge_bvec_fn in component devices better. 2010-04-26 07:41:35 -07:00
raid0.h
unroll.awk md: drivers/md/unroll.pl replaced with awk analog 2009-10-16 16:25:19 +11:00