blk_queue_issue_flush_fn(queue, i2o_block_issue_flush); 
static struct i2o_block_device *i2o_block_device_alloc(void){	struct i2o_block_device *dev;	struct gendisk *gd;	struct request_queue *queue;	int rc;	dev = kmalloc(sizeof(*dev), GFP_KERNEL);	if (!dev) {		osm_err("Insufficient memory to allocate I2O Block disk.\n");		rc = -ENOMEM;		goto exit;	}	memset(dev, 0, sizeof(*dev));	INIT_LIST_HEAD(&dev->open_queue);	spin_lock_init(&dev->lock);	dev->rcache = CACHE_PREFETCH;	dev->wcache = CACHE_WRITEBACK;	/* allocate a gendisk with 16 partitions */	gd = alloc_disk(16);	if (!gd) {		osm_err("Insufficient memory to allocate gendisk.\n");		rc = -ENOMEM;		goto cleanup_dev;	}	/* initialize the request queue */	queue = blk_init_queue(i2o_block_request_fn, &dev->lock);	if (!queue) {		osm_err("Insufficient memory to allocate request queue.\n");		rc = -ENOMEM;		goto cleanup_queue;	}	blk_queue_prep_rq(queue, i2o_block_prep_req_fn);	gd->major = I2O_MAJOR;	gd->queue = queue;	gd->fops = &i2o_block_fops;	gd->private_data = dev;	dev->gd = gd;	return dev;      cleanup_queue:	put_disk(gd);      cleanup_dev:	kfree(dev);      exit:	return ERR_PTR(rc);};
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f10378fff658f61307496e0ae00095041725cf07/i2o_block.c/buggy/drivers/message/i2o/i2o_block.c