[patch] 2.3.6 raid5 oops

Mike Galbraith (mikeg@weiden.de)
Sat, 12 Jun 1999 13:04:03 +0200 (CEST)


Hi,

While trying to find out if raid-1 or raid-5 swap is deadly or not [1],
I ran into an oops (raid-0145) when making a raid-5 array with mkraid.
Looking at stock 2.3.6 raid5.c, it looks like the same fix is needed.

-Mike

[1] seemingly not.. swapped heavily to both (UP) with no deadlock.

-----------------------------cut---------------------------------

--- linux-2.3.6/drivers/block/raid5.c.org Sat Jun 12 12:16:19 1999
+++ linux-2.3.6/drivers/block/raid5.c Sat Jun 12 12:18:55 1999
@@ -405,6 +405,7 @@
if ((sh = kmalloc(sizeof(struct stripe_head), priority)) == NULL)
return 1;
memset(sh, 0, sizeof(*sh));
+ init_waitqueue_head(&sh->wait);
if (grow_buffers(sh, 2 * raid_conf->raid_disks, PAGE_SIZE, priority)) {
shrink_buffers(sh, 2 * raid_conf->raid_disks);
kfree(sh);
@@ -468,6 +469,7 @@
buffer_pool = sh->buffer_pool;
bh_pool = sh->bh_pool;
memset(sh, 0, sizeof(*sh));
+ init_waitqueue_head(&sh->wait);
sh->buffer_pool = buffer_pool;
sh->bh_pool = bh_pool;
sh->phase = PHASE_COMPLETE;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/