2006-08-09 09:10:05

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch] s390: dasd set offline kernel bug.

From: Horst Hummel <[email protected]>

[S390] dasd set offline kernel bug.

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 <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---

drivers/s390/block/dasd.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -urpN linux-2.6/drivers/s390/block/dasd.c linux-2.6-patched/drivers/s390/block/dasd.c
--- linux-2.6/drivers/s390/block/dasd.c 2006-08-09 10:25:24.000000000 +0200
+++ linux-2.6-patched/drivers/s390/block/dasd.c 2006-08-09 10:25:42.000000000 +0200
@@ -1730,8 +1730,8 @@ dasd_flush_request_queue(struct dasd_dev
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);
}