summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-03-31 12:32:02 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-31 22:19:01 +0200
commit926ce2d8a7d446c720faec9d8c5105eeb04bcf7a (patch)
tree3dd393c2d254a0bd151b00214d4e85b1bd833838 /drivers/md
parent[PATCH] md: Don't clear bits in bitmap when writing to one device fails durin... (diff)
downloadlinux-926ce2d8a7d446c720faec9d8c5105eeb04bcf7a.tar.xz
linux-926ce2d8a7d446c720faec9d8c5105eeb04bcf7a.zip
[PATCH] md: Remove some code that can sleep from under a spinlock
And remove the comments that were put in inplace of a fix too.... 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 'drivers/md')
-rw-r--r--drivers/md/md.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 039e071c1007..1ed5152db450 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -215,13 +215,11 @@ static void mddev_put(mddev_t *mddev)
return;
if (!mddev->raid_disks && list_empty(&mddev->disks)) {
list_del(&mddev->all_mddevs);
- /* that blocks */
+ spin_unlock(&all_mddevs_lock);
blk_cleanup_queue(mddev->queue);
- /* that also blocks */
kobject_unregister(&mddev->kobj);
- /* result blows... */
- }
- spin_unlock(&all_mddevs_lock);
+ } else
+ spin_unlock(&all_mddevs_lock);
}
static mddev_t * mddev_find(dev_t unit)