s390 (4/13): dasd block device driver.
Subsystems (2)
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
@@ -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
@@ -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
@@ -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 ;