瀏覽代碼

[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>
Stefan Haberland 16 年之前
父節點
當前提交
b695adfaa1
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/s390/block/dasd.c

+ 1 - 1
drivers/s390/block/dasd.c

@@ -323,8 +323,8 @@ static int dasd_state_ready_to_basic(struct dasd_device *device)
 			device->state = DASD_STATE_READY;
 			device->state = DASD_STATE_READY;
 			return rc;
 			return rc;
 		}
 		}
-		dasd_destroy_partitions(block);
 		dasd_flush_request_queue(block);
 		dasd_flush_request_queue(block);
+		dasd_destroy_partitions(block);
 		block->blocks = 0;
 		block->blocks = 0;
 		block->bp_block = 0;
 		block->bp_block = 0;
 		block->s2b_shift = 0;
 		block->s2b_shift = 0;