Skip to contentSkip to conversation

s390 (4/13): dasd block device driver.

PATCH New Martin Schwidefsky 1 participant 1 message Feb 24, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 s390 (4/13): dasd block device driver.

updates for s390 dasd driver

Some problems have been found in the dasd error handling code, they are fixed by the update to dasd_3990_erp.c.

Dasd is one of only two remaining drivers that use the null elevator instead of iosched. Appearantly, the null elevator has some bitrot and can result in random data loss. For now, we just don't use it.

drivers/s390/block/dasd.c +4 -1
diff -urN linux-2.5.62/drivers/s390/block/dasd.c linux-2.5.62-s390/drivers/s390/block/dasd.c
@@ -7,7 +7,7 @@
  * Bugreports.to..: <[email protected]>
  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
  *
- * $Revision: 1.71 $
+ * $Revision: 1.74 $
  *
  * History of changes (starts July 2000)
  * 11/09/00 complete redesign after code review
@@ -1656,17 +1656,20 @@
 	device->request_queue = kmalloc(sizeof (request_queue_t), GFP_KERNEL);
 	if (device->request_queue == NULL)
 		return -ENOMEM;
+	memset(device->request_queue, 0, sizeof(request_queue_t));
 	device->request_queue->queuedata = device;
 	rc = blk_init_queue(device->request_queue, do_dasd_request,
 			    &device->request_queue_lock);
 	if (rc)
 		return rc;
+#if 0
 	elevator_exit(device->request_queue);
 	rc = elevator_init(device->request_queue, &elevator_noop);
 	if (rc) {
 		blk_cleanup_queue(device->request_queue);
 		return rc;
 	}
+#endif
 	blk_queue_hardsect_size(device->request_queue, device->bp_block);
 	max = device->discipline->max_blocks << device->s2b_shift;
 	blk_queue_max_sectors(device->request_queue, max);
drivers/s390/block/dasd_3990_erp.c +34 -42

130 lines not on this page · raw message

drivers/s390/block/dasd_eckd.c +1 -1
diff -urN linux-2.5.62/drivers/s390/block/dasd_eckd.c linux-2.5.62-s390/drivers/s390/block/dasd_eckd.c
@@ -7,7 +7,7 @@
  * Bugreports.to..: <[email protected]>
  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
  *
- * $Revision: 1.35 $
+ * $Revision: 1.36 $
  *
  * History of changes (starts July 2000)
  * 07/11/00 Enabled rotational position sensing
drivers/s390/block/dasd_ioctl.c +3 -3
diff -urN linux-2.5.62/drivers/s390/block/dasd_ioctl.c linux-2.5.62-s390/drivers/s390/block/dasd_ioctl.c
@@ -111,7 +111,7 @@
 		ioctl = list_entry(l, dasd_ioctl_list_t, list);
 		if (ioctl->no == no) {
 			/* Found a matching ioctl. Call it. */
-			if (try_module_get(ioctl->owner) != 0)
+			if (!try_module_get(ioctl->owner))
 				continue;
 			rc = ioctl->handler(bdev, no, data);
 			module_put(ioctl->owner);
@@ -263,7 +263,7 @@
 	if (!capable(CAP_SYS_ADMIN))
 		return -EACCES;
 
-	device = = bdev->bd_disk->private_data;
+	device = bdev->bd_disk->private_data;
 	if (device == NULL)
 		return -ENODEV;
 
@@ -279,7 +279,7 @@
 {
 	dasd_device_t *device;
 
-	device = = bdev->bd_disk->private_data;
+	device = bdev->bd_disk->private_data;
 	if (device == NULL)
 		return -ENODEV;