NeilBrown
b2d2c4cead
Fix problem with waiting while holding rcu read lock in md/bitmap.c
...
A recent patch to protect the rdev list with rcu locking leaves us
with a problem because we can sleep on memalloc while holding the
rcu lock.
The rcu lock is only needed while walking the linked list as
uninteresting devices (failed or spares) can be removed at any time.
So only take the rcu lock while actually walking the linked list.
Take a refcount on the rdev during the time when we drop the lock
and do the memalloc to start IO.
When we return to the locked code, all the interesting devices
on the list will not have moved, so we can simply use
list_for_each_continue_rcu to pick up where we left off.
Signed-off-by: NeilBrown <[email protected] >
2008-09-01 12:48:13 +10:00
..
raid6test
md: raid6: clean up the style of raid6test/test.c
2008-02-06 10:41:18 -08:00
.gitignore
bitmap.c
Fix problem with waiting while holding rcu read lock in md/bitmap.c
2008-09-01 12:48:13 +10:00
dm-bio-list.h
dm: bio_list macro renaming
2007-10-20 02:01:11 +01:00
dm-bio-record.h
dm-crypt.c
dm crypt: add merge
2008-07-21 12:00:40 +01:00
dm-delay.c
dm: bio_list macro renaming
2007-10-20 02:01:11 +01:00
dm-exception-store.c
dm: move include files
2008-04-25 13:26:55 +01:00
dm-io.c
dm: unplug queues in threads
2008-04-25 13:26:57 +01:00
dm-ioctl.c
dm ioctl: use uninitialized_var
2008-02-08 02:10:16 +00:00
dm-kcopyd.c
dm: unplug queues in threads
2008-04-25 13:26:57 +01:00
dm-linear.c
dm: linear add merge
2008-07-21 12:00:38 +01:00
dm-log.c
dm log: make dm_dirty_log init and exit static
2008-07-21 12:00:27 +01:00
dm-mpath.c
[SCSI] scsi_dh: attach to hardware handler from dm-mpath
2008-07-26 15:14:53 -04:00
dm-mpath.h
[SCSI] scsi_dh: Remove hardware handler infrastructure from dm
2008-06-05 09:23:42 -05:00
dm-path-selector.c
dm: use kzalloc
2007-10-20 02:01:07 +01:00
dm-path-selector.h
[PATCH] struct path: rename DM's struct path
2006-12-08 08:28:40 -08:00
dm-raid1.c
dm: unplug queues in threads
2008-04-25 13:26:57 +01:00
dm-round-robin.c
dm: remove duplicate module name from error msgs
2007-07-12 15:01:08 -07:00
dm-snap.c
dm snapshot: use per device mempools
2008-07-21 12:00:35 +01:00
dm-snap.h
dm snapshot: use per device mempools
2008-07-21 12:00:35 +01:00
dm-stripe.c
dm: stripe enhanced status return
2008-02-08 02:11:24 +00:00
dm-table.c
[PATCH] switch mtd and dm-table to lookup_bdev()
2008-08-01 11:25:31 -04:00
dm-target.c
dm: use kzalloc
2007-10-20 02:01:07 +01:00
dm-uevent.c
md: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
dm-uevent.h
dm: uevent generate events
2007-10-20 02:01:26 +01:00
dm-zero.c
Drop 'size' argument from bio_endio and bi_end_io
2007-10-10 09:25:57 +02:00
dm.c
dm: introduce merge_bvec_fn
2008-07-21 12:00:37 +01:00
dm.h
dm log: make dm_dirty_log init and exit static
2008-07-21 12:00:27 +01:00
faulty.c
md: Make mddev->array_size sector-based.
2008-07-21 17:05:22 +10:00
Kconfig
[SCSI] scsi_dh: fix kconfig related build errors
2008-07-15 09:16:43 -05:00
linear.c
Merge branch 'for-linus' of git://neil.brown.name/md
2008-07-21 10:29:12 -07:00
Makefile
[SCSI] scsi_dh: Remove hardware handler infrastructure from dm
2008-06-05 09:23:42 -05:00
md.c
Remove invalidate_partition call from do_md_stop.
2008-09-01 12:32:52 +10:00
mktables.c
md: raid6: Fix mktable.c
2008-02-06 10:41:18 -08:00
multipath.c
md: Make mddev->array_size sector-based.
2008-07-21 17:05:22 +10:00
raid0.c
Merge branch 'for-linus' of git://neil.brown.name/md
2008-07-21 10:29:12 -07:00
raid1.c
md: Make mddev->array_size sector-based.
2008-07-21 17:05:22 +10:00
raid5.c
Don't let a blocked_rdev interfere with read request in raid5/6
2008-08-05 15:56:32 +10:00
raid6.h
raid6algos.c
drivers/md: use time_before, time_before_eq, etc
2008-04-28 08:58:42 -07:00
raid6altivec.uc
raid6int.uc
raid6mmx.c
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6recov.c
raid6sse1.c
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6sse2.c
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6x86.h
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid10.c
Allow raid10 resync to happening in larger chunks.
2008-08-05 15:56:32 +10:00
unroll.pl