upgrade to linux 2.6.10-1.12_FC2
[linux-2.6.git] / drivers / s390 / block / dasd.c
index c905193..be8ce08 100644 (file)
@@ -7,7 +7,7 @@
  * Bugreports.to..: <Linux390@de.ibm.com>
  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
  *
- * $Revision: 1.149 $
+ * $Revision: 1.151 $
  */
 
 #include <linux/config.h>
@@ -1107,7 +1107,7 @@ dasd_end_request_cb(struct dasd_ccw_req * cqr, void *data)
        int status;
 
        req = (struct request *) data;
-       device = cqr->device; 
+       device = cqr->device;
        dasd_profile_end(device, cqr, req);
        status = cqr->device->discipline->free_cp(cqr,req);
        spin_lock_irq(&device->request_queue_lock);
@@ -1598,8 +1598,8 @@ dasd_alloc_queue(struct dasd_device * device)
 
        device->request_queue->queuedata = device;
 #if 0
-       elevator_exit(device->request_queue);
-       rc = elevator_init(device->request_queue, &elevator_noop);
+       elevator_exit(device->request_queue->elevator);
+       rc = elevator_init(device->request_queue, "noop");
        if (rc) {
                blk_cleanup_queue(device->request_queue);
                return rc;
@@ -1909,8 +1909,10 @@ dasd_generic_notify(struct ccw_device *cdev, int event)
                        dasd_schedule_bh(device);
                } else {
                        list_for_each_entry(cqr, &device->ccw_queue, list)
-                               if (cqr->status == DASD_CQR_IN_IO)
+                               if (cqr->status == DASD_CQR_IN_IO) {
                                        cqr->status = DASD_CQR_QUEUED;
+                                       cqr->retries++;
+                               }
                        device->stopped |= DASD_STOPPED_DC_WAIT;
                        dasd_set_timer(device, 0);
                }