device->features = devmap->features; 
dasd_create_device(struct ccw_device *cdev){	struct dasd_devmap *devmap;	struct dasd_device *device;	int rc;	devmap = dasd_devmap_from_cdev(cdev);	if (IS_ERR(devmap))		return (void *) devmap;	cdev->dev.driver_data = devmap;	device = dasd_alloc_device();	if (IS_ERR(device))		return device;	atomic_set(&device->ref_count, 2);	spin_lock(&dasd_devmap_lock);	if (!devmap->device) {		devmap->device = device;		device->devindex = devmap->devindex;		get_device(&cdev->dev);		device->cdev = cdev;		rc = 0;	} else		/* Someone else was faster. */		rc = -EBUSY;	spin_unlock(&dasd_devmap_lock);	if (rc) {		dasd_free_device(device);		return ERR_PTR(rc);	}	return device;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c6eb7b7703ac4b3401b74f411c8c51ded214bf19/dasd_devmap.c/clean/drivers/s390/block/dasd_devmap.c