[PATCH] md: delay starting md threads until array is completely setup
authorNeilBrown <neilb@suse.de>
Mon, 10 Jul 2006 11:44:15 +0000 (04:44 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 10 Jul 2006 20:24:16 +0000 (13:24 -0700)
commit0b8c9de05c2a860fe6b02fedcb48763bcee648b3
tree893228041dfcc44a216a6887e75c2424e0a8bca9
parent31b65a0d3894566191b91fbadd122c354a363b5d
[PATCH] md: delay starting md threads until array is completely setup

When an array is started we start one or two threads (two if there is a
reshape or recovery that needs to be completed).

We currently start these *before* the array is completely set up and in
particular before queue->queuedata is set.  If the thread actually starts
very quickly on another CPU, we can end up dereferencing queue->queuedata
and oops.

This patch also makes sure we don't try to start a recovery if a reshape is
being restarted.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/md.c
drivers/md/raid5.c