 if (unlikely(!i2o_blk_dev)) { osm_err("block device already removed\n"); return BLKPREP_KILL; } 
static int i2o_block_prep_req_fn(struct request_queue *q, struct request *req){	struct i2o_block_device *i2o_blk_dev = q->queuedata;	struct i2o_block_request *ireq;	/* request is already processed by us, so return */	if (req->flags & REQ_SPECIAL) {		osm_debug("REQ_SPECIAL already set!\n");		req->flags |= REQ_DONTPREP;		return BLKPREP_OK;	}	/* connect the i2o_block_request to the request */	if (!req->special) {		ireq = i2o_block_request_alloc();		if (unlikely(IS_ERR(ireq))) {			osm_debug("unable to allocate i2o_block_request!\n");			return BLKPREP_DEFER;		}		ireq->i2o_blk_dev = i2o_blk_dev;		req->special = ireq;		ireq->req = req;	} else		ireq = req->special;	/* do not come back here */	req->flags |= REQ_DONTPREP | REQ_SPECIAL;	return BLKPREP_OK;};
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f10378fff658f61307496e0ae00095041725cf07/i2o_block.c/buggy/drivers/message/i2o/i2o_block.c