s390/dasd: fix unresumed device after suspend/resume

The DASD device driver only has a limited amount of memory to build
I/O requests.
This memory was used by blocklayer requests leading to an inability
to build needed internal requests to resume the device.
Fix by preventing the DASD driver to fetch requests for a stopped
device.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Reference-ID: RQM 2520
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Stefan Haberland 2015-04-02 12:52:41 +02:00 коммит произвёл Martin Schwidefsky
Родитель f2608cd4a3
Коммит a3147a7bc2
1 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -2527,6 +2527,11 @@ static void __dasd_process_request_queue(struct dasd_block *block)
__blk_end_request_all(req, -EIO);
return;
}
/* if device ist stopped do not fetch new requests */
if (basedev->stopped)
return;
/* Now we try to fetch requests from the request queue */
while ((req = blk_peek_request(queue))) {
if (basedev->features & DASD_FEATURE_READONLY &&