diff options
author | NeilBrown <neilb@suse.de> | 2005-11-28 22:44:10 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-28 23:42:25 +0100 |
commit | 700e432d8364ce59c521abbe03a522051610ebc2 (patch) | |
tree | 50293a973edfc2cc39858367d50497416473fb5b /drivers/md/raid6main.c | |
parent | [PATCH] md: improve read speed to raid10 arrays using 'far copies' (diff) | |
download | linux-700e432d8364ce59c521abbe03a522051610ebc2.tar.xz linux-700e432d8364ce59c521abbe03a522051610ebc2.zip |
[PATCH] md: fix locking problem in r5/r6
bitmap_unplug actually writes data (bits) to storage, so we shouldn't be
holding a spinlock...
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/md/raid6main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/raid6main.c b/drivers/md/raid6main.c index eae5a35629c5..17d88d90d1ef 100644 --- a/drivers/md/raid6main.c +++ b/drivers/md/raid6main.c @@ -1784,7 +1784,9 @@ static void raid6d (mddev_t *mddev) if (conf->seq_flush - conf->seq_write > 0) { int seq = conf->seq_flush; + spin_unlock_irq(&conf->device_lock); bitmap_unplug(mddev->bitmap); + spin_lock_irq(&conf->device_lock); conf->seq_write = seq; activate_bit_delay(conf); } |