[S390] dasd set offline kernel bug.
authorHorst Hummel <horst.hummel@de.ibm.com>
Wed, 9 Aug 2006 08:30:22 +0000 (10:30 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 9 Aug 2006 08:30:22 +0000 (10:30 +0200)
The request queue flush function of the dasd driver has to dequeue
the requests first and then call the end request function. Otherwise
a kernel bug in ll_rw_block.c might get triggered.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd.c

index 4bf03fb67f8d46320e72a068e84aa4230a53d017..d8e9b95f0a1a374875c9574cb99af5b0ef5e4968 100644 (file)
@@ -1730,8 +1730,8 @@ dasd_flush_request_queue(struct dasd_device * device)
                req = elv_next_request(device->request_queue);
                if (req == NULL)
                        break;
-               dasd_end_request(req, 0);
                blkdev_dequeue_request(req);
+               dasd_end_request(req, 0);
        }
        spin_unlock_irq(&device->request_queue_lock);
 }