io_req->op = (rq_data_dir(req) == READ) ? AIO_READ : AIO_WRITE; 
io_req->sector_mask = 0;  io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE; 
static int prepare_request(struct request *req, struct io_thread_req *io_req,                           unsigned long long offset, int page_offset,                           int len, struct page *page){	struct gendisk *disk = req->rq_disk;	struct ubd *dev = disk->private_data;	/* 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);                ubd_end_request(req, 0, 0);		return(1);	}	io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd;	io_req->fds[1] = dev->fd;	io_req->offset = offset;	io_req->length = len;	io_req->error = 0;	io_req->op = (rq_data_dir(req) == READ) ? AIO_READ : AIO_WRITE;	io_req->offsets[0] = 0;	io_req->offsets[1] = dev->cow.data_offset;        io_req->buffer = page_address(page) + page_offset;	io_req->sectorsize = 1 << 9;        io_req->bitmap_offset = dev->cow.bitmap_offset;        io_req->bitmap_start = -1;        io_req->bitmap_end = -1;        if((dev->cow.file != NULL) && (io_req->op == UBD_WRITE))                cowify_bitmap(io_req, dev->cow.bitmap);	return(0);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/91acb21f084aa244f26839406ae7ed8aa3668058/ubd_kern.c/buggy/arch/um/drivers/ubd_kern.c