From: Stefan Haberland Date: Thu, 2 Apr 2015 10:52:41 +0000 (+0200) Subject: s390/dasd: fix unresumed device after suspend/resume X-Git-Tag: v4.1-rc1~72^2~3 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=a3147a7bc266df39b4f471ee7c4c9adcb56d29a6;p=cascardo%2Flinux.git 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 Reference-ID: RQM 2520 Signed-off-by: Martin Schwidefsky --- 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) __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 &&