if (feature_ro) 
if (device->features & DASD_FEATURE_READONLY) 
dasd_gendisk_alloc(struct dasd_device *device){	struct gendisk *gdp;	int len, feature_ro;	/* Make sure the minor for this device exists. */	if (device->devindex >= DASD_PER_MAJOR)		return -EBUSY;	feature_ro = dasd_get_feature(device->cdev, DASD_FEATURE_READONLY);	if (feature_ro < 0)		return feature_ro;	gdp = alloc_disk(1 << DASD_PARTN_BITS);	if (!gdp)		return -ENOMEM;	/* Initialize gendisk structure. */	gdp->major = DASD_MAJOR;	gdp->first_minor = device->devindex << DASD_PARTN_BITS;	gdp->fops = &dasd_device_operations;	gdp->driverfs_dev = &device->cdev->dev;	/*	 * Set device name.	 *   dasda - dasdz : 26 devices	 *   dasdaa - dasdzz : 676 devices, added up = 702	 *   dasdaaa - dasdzzz : 17576 devices, added up = 18278	 *   dasdaaaa - dasdzzzz : 456976 devices, added up = 475252	 */	len = sprintf(gdp->disk_name, "dasd");	if (device->devindex > 25) {	        if (device->devindex > 701) {		        if (device->devindex > 18277)			        len += sprintf(gdp->disk_name + len, "%c",					       'a'+(((device->devindex-18278)						     /17576)%26));			len += sprintf(gdp->disk_name + len, "%c",				       'a'+(((device->devindex-702)/676)%26));		}		len += sprintf(gdp->disk_name + len, "%c",			       'a'+(((device->devindex-26)/26)%26));	}	len += sprintf(gdp->disk_name + len, "%c", 'a'+(device->devindex%26)); 	sprintf(gdp->devfs_name, "dasd/%s", device->cdev->dev.bus_id);	if (feature_ro)		set_disk_ro(gdp, 1);	gdp->private_data = device;	gdp->queue = device->request_queue;	device->gdp = gdp;	set_capacity(device->gdp, 0);	add_disk(device->gdp);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c6eb7b7703ac4b3401b74f411c8c51ded214bf19/dasd_genhd.c/clean/drivers/s390/block/dasd_genhd.c