aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2015-04-02 06:52:41 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-04-15 06:23:51 -0400
commita3147a7bc266df39b4f471ee7c4c9adcb56d29a6 (patch)
treeaeb9d19aadee1fc00fc183188fb9a7e03f6a4227 /drivers/s390
parentf2608cd4a37479d11d0748f524a6a363ee38631f (diff)
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>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/block/dasd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index cd57857a1c84..a5ed35d0cbf3 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -2527,6 +2527,11 @@ static void __dasd_process_request_queue(struct dasd_block *block)
2527 __blk_end_request_all(req, -EIO); 2527 __blk_end_request_all(req, -EIO);
2528 return; 2528 return;
2529 } 2529 }
2530
2531 /* if device ist stopped do not fetch new requests */
2532 if (basedev->stopped)
2533 return;
2534
2530 /* Now we try to fetch requests from the request queue */ 2535 /* Now we try to fetch requests from the request queue */
2531 while ((req = blk_peek_request(queue))) { 2536 while ((req = blk_peek_request(queue))) {
2532 if (basedev->features & DASD_FEATURE_READONLY && 2537 if (basedev->features & DASD_FEATURE_READONLY &&