Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3147a7b authored by Stefan Haberland's avatar Stefan Haberland Committed by Martin Schwidefsky
Browse files

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: default avatarStefan Haberland <stefan.haberland@de.ibm.com>
Reference-ID: RQM 2520
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent f2608cd4
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -2527,6 +2527,11 @@ static void __dasd_process_request_queue(struct dasd_block *block)
			__blk_end_request_all(req, -EIO);
			__blk_end_request_all(req, -EIO);
		return;
		return;
	}
	}

	/* if device ist stopped do not fetch new requests */
	if (basedev->stopped)
		return;

	/* Now we try to fetch requests from the request queue */
	/* Now we try to fetch requests from the request queue */
	while ((req = blk_peek_request(queue))) {
	while ((req = blk_peek_request(queue))) {
		if (basedev->features & DASD_FEATURE_READONLY &&
		if (basedev->features & DASD_FEATURE_READONLY &&