2006-11-02 16:31:44

by Mike Miller (OS Dev)

[permalink] [raw]
Subject: [PATCH 9/8] cciss: add busy_configuring test to check_queues

PATCH 9 of 8

Sorry for the messed up sequence. There are actually 11 total patches.
This patch adds a check for busy_configuring to prevent starting a queue
on a drive that may be in the midst of updating, configuring, deleting, etc.

This had a test for if the queue was stopped or plugged but that seemed
to cause issues and others thought the test unnecessary.
Please consider this for inclusion.

Thanks,
mikem

Signed-off-by: Mike Miller <[email protected]>

cciss.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)
--------------------------------------------------------------------------------
diff -urNp linux-2.6-p00008/drivers/block/cciss.c linux-2.6-p00009/drivers/block/cciss.c
--- linux-2.6-p00008/drivers/block/cciss.c 2006-10-31 16:10:12.000000000 -0600
+++ linux-2.6-p00009/drivers/block/cciss.c 2006-11-02 09:42:39.000000000 -0600
@@ -1190,8 +1190,11 @@ static void cciss_check_queues(ctlr_info
/* make sure the disk has been added and the drive is real
* because this can be called from the middle of init_one.
*/
- if (!(h->drv[curr_queue].queue) || !(h->drv[curr_queue].heads))
+ if (!(h->drv[curr_queue].queue) ||
+ !(h->drv[curr_queue].heads) ||
+ h->drv[curr_queue].busy_configuring)
continue;
+
blk_start_queue(h->gendisk[curr_queue]->queue);

/* check to see if we have maxed out the number of commands