aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2010-02-26 16:37:48 -0500
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-02-26 16:37:32 -0500
commitb695adfaa118fd7c50eca8990e348dd7372ee0aa (patch)
treefeaa24ac072741256220f039fc2e22c27fe7f8b6 /drivers/s390/block
parent589c74d5076dd1bde13a5a36d97ca79be8bd72b2 (diff)
[S390] dasd: correct offline processing
Flushing the dasd ccw request queue may stop the processing of the block device request queue. Destroy partitions may wait for outstanding requests and thus hang. Swapping dasd_destroy_partitions and dasd_flush_request_queue so that the request queue is empty before dasd_destroy_partitions is called. Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block')
-rw-r--r--drivers/s390/block/dasd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 302ca14a69e..9ab1ae40565 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -323,8 +323,8 @@ static int dasd_state_ready_to_basic(struct dasd_device *device)
323 device->state = DASD_STATE_READY; 323 device->state = DASD_STATE_READY;
324 return rc; 324 return rc;
325 } 325 }
326 dasd_destroy_partitions(block);
327 dasd_flush_request_queue(block); 326 dasd_flush_request_queue(block);
327 dasd_destroy_partitions(block);
328 block->blocks = 0; 328 block->blocks = 0;
329 block->bp_block = 0; 329 block->bp_block = 0;
330 block->s2b_shift = 0; 330 block->s2b_shift = 0;