s390/dasd: fix failfast for disconnected devices
authorStefan Haberland <stefan.haberland@de.ibm.com>
Tue, 22 Dec 2015 12:34:38 +0000 (13:34 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 30 Dec 2015 09:34:41 +0000 (10:34 +0100)
Enabling failfast should let request fail immediately if either an
error occurred or the device gets disconnected.
For disconnected devices new requests are not fetches from the block
queue and therefore failfast is not triggered.

Fix by letting the DASD driver fetch requests for disconnected devices
with failfast active.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd.c

index a263c10359e1553f007a1a031e8b76733c463109..41605dac83094813441530ae9cacad093a352f71 100644 (file)
@@ -2556,8 +2556,12 @@ static void __dasd_process_request_queue(struct dasd_block *block)
                return;
        }
 
-       /* if device ist stopped do not fetch new requests */
-       if (basedev->stopped)
+       /*
+        * if device is stopped do not fetch new requests
+        * except failfast is active which will let requests fail
+        * immediately in __dasd_block_start_head()
+        */
+       if (basedev->stopped && !(basedev->features & DASD_FEATURE_FAILFAST))
                return;
 
        /* Now we try to fetch requests from the request queue */