io_req->cow_offset = -1; 
static int prepare_request(struct request *req, struct io_thread_req *io_req){	struct gendisk *disk = req->rq_disk;	struct ubd *dev = disk->private_data;	__u64 offset;	int len;	if(req->rq_status == RQ_INACTIVE) return(1);	/* This should be impossible now */	if((rq_data_dir(req) == WRITE) && !dev->openflags.w){		printk("Write attempted on readonly ubd device %s\n", 		       disk->disk_name);		end_request(req, 0);		return(1);	}	offset = ((__u64) req->sector) << 9;	len = req->current_nr_sectors << 9;	io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd;	io_req->fds[1] = dev->fd;	io_req->cow_offset = -1;	io_req->offset = offset;	io_req->length = len;	io_req->error = 0;	io_req->sector_mask = 0;	io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE;	io_req->offsets[0] = 0;	io_req->offsets[1] = dev->cow.data_offset;	io_req->buffer = req->buffer;	io_req->sectorsize = 1 << 9;	if(dev->cow.file != NULL)		cowify_req(io_req, dev->cow.bitmap, dev->cow.bitmap_offset,			   dev->cow.bitmap_len);	return(0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/09ace81c1d737bcbb2423db235ac980cac4d5de9/ubd_kern.c/buggy/arch/um/drivers/ubd_kern.c