[PATCH] md: Remove some code that can sleep from under a spinlock
authorNeilBrown <neilb@suse.de>
Fri, 31 Mar 2006 10:32:02 +0000 (02:32 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 31 Mar 2006 20:19:01 +0000 (12:19 -0800)
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>
drivers/md/md.c

index 039e071..1ed5152 100644 (file)
@@ -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)