• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/um/drivers/

Lines Matching refs:ubd_dev

281 	struct ubd *ubd_dev;
334 ubd_dev = &ubd_devs[n];
335 if(ubd_dev->file != NULL){
353 ubd_dev->no_cow = 1;
356 ubd_dev->shared = 1;
382 if(ubd_dev->no_cow){
392 ubd_dev->file = str;
393 ubd_dev->cow.file = backing_file;
394 ubd_dev->boot_openflags = flags;
511 static inline int ubd_file_size(struct ubd *ubd_dev, __u64 *size_out)
515 file = ubd_dev->cow.file ? ubd_dev->cow.file : ubd_dev->file;
705 static void ubd_close_dev(struct ubd *ubd_dev)
707 os_close_file(ubd_dev->fd);
708 if(ubd_dev->cow.file == NULL)
711 os_close_file(ubd_dev->cow.fd);
712 vfree(ubd_dev->cow.bitmap);
713 ubd_dev->cow.bitmap = NULL;
716 static int ubd_open_dev(struct ubd *ubd_dev)
723 ubd_dev->openflags = ubd_dev->boot_openflags;
725 create_ptr = (ubd_dev->cow.file != NULL) ? &create_cow : NULL;
726 back_ptr = ubd_dev->no_cow ? NULL : &ubd_dev->cow.file;
728 fd = open_ubd_file(ubd_dev->file, &ubd_dev->openflags, ubd_dev->shared,
729 back_ptr, &ubd_dev->cow.bitmap_offset,
730 &ubd_dev->cow.bitmap_len, &ubd_dev->cow.data_offset,
734 fd = create_cow_file(ubd_dev->file, ubd_dev->cow.file,
735 ubd_dev->openflags, 1 << 9, PAGE_SIZE,
736 &ubd_dev->cow.bitmap_offset,
737 &ubd_dev->cow.bitmap_len,
738 &ubd_dev->cow.data_offset);
741 "\"%s\"\n", ubd_dev->file, ubd_dev->cow.file);
746 printk("Failed to open '%s', errno = %d\n", ubd_dev->file,
750 ubd_dev->fd = fd;
752 if(ubd_dev->cow.file != NULL){
753 blk_queue_max_hw_sectors(ubd_dev->queue, 8 * sizeof(long));
756 ubd_dev->cow.bitmap = vmalloc(ubd_dev->cow.bitmap_len);
757 if(ubd_dev->cow.bitmap == NULL){
763 err = read_cow_bitmap(ubd_dev->fd, ubd_dev->cow.bitmap,
764 ubd_dev->cow.bitmap_offset,
765 ubd_dev->cow.bitmap_len);
769 flags = ubd_dev->openflags;
771 err = open_ubd_file(ubd_dev->cow.file, &flags, ubd_dev->shared, NULL,
774 ubd_dev->cow.fd = err;
778 os_close_file(ubd_dev->fd);
784 struct ubd *ubd_dev = dev_get_drvdata(dev);
786 blk_cleanup_queue(ubd_dev->queue);
787 *ubd_dev = ((struct ubd) DEFAULT_UBD);
830 struct ubd *ubd_dev = &ubd_devs[n];
833 if(ubd_dev->file == NULL)
836 err = ubd_file_size(ubd_dev, &ubd_dev->size);
842 ubd_dev->size = ROUND_BLOCK(ubd_dev->size);
844 INIT_LIST_HEAD(&ubd_dev->restart);
845 sg_init_table(ubd_dev->sg, MAX_SG);
848 ubd_dev->queue = blk_init_queue(do_ubd_request, &ubd_dev->lock);
849 if (ubd_dev->queue == NULL) {
853 ubd_dev->queue->queuedata = ubd_dev;
855 blk_queue_max_segments(ubd_dev->queue, MAX_SG);
856 err = ubd_disk_register(UBD_MAJOR, ubd_dev->size, n, &ubd_gendisk[n]);
863 ubd_disk_register(fake_major, ubd_dev->size, n,
878 blk_cleanup_queue(ubd_dev->queue);
921 struct ubd *ubd_dev;
930 ubd_dev = &ubd_devs[n];
933 if(ubd_dev->file == NULL){
938 CONFIG_CHUNK(str, size, len, ubd_dev->file, 0);
940 if(ubd_dev->cow.file != NULL){
942 CONFIG_CHUNK(str, size, len, ubd_dev->cow.file, 1);
964 struct ubd *ubd_dev;
969 ubd_dev = &ubd_devs[n];
971 if(ubd_dev->file == NULL)
976 if(ubd_dev->count > 0)
992 platform_device_unregister(&ubd_dev->pdev);
1020 struct ubd *ubd_dev = &ubd_devs[0];
1023 if(ubd_dev->file == NULL)
1024 ubd_dev->file = "root_fs";
1100 struct ubd *ubd_dev = disk->private_data;
1104 if(ubd_dev->count == 0){
1105 err = ubd_open_dev(ubd_dev);
1108 disk->disk_name, ubd_dev->file, -err);
1112 ubd_dev->count++;
1113 set_disk_ro(disk, !ubd_dev->openflags.w);
1117 /*if((mode & FMODE_WRITE) && !ubd_dev->openflags.w){
1118 if(--ubd_dev->count == 0) ubd_close_dev(ubd_dev);
1128 struct ubd *ubd_dev = disk->private_data;
1131 if(--ubd_dev->count == 0)
1132 ubd_close_dev(ubd_dev);
1203 struct ubd *ubd_dev = disk->private_data;
1206 io_req->fds[0] = (ubd_dev->cow.file != NULL) ? ubd_dev->cow.fd :
1207 ubd_dev->fd;
1208 io_req->fds[1] = ubd_dev->fd;
1217 io_req->offsets[1] = ubd_dev->cow.data_offset;
1221 if(ubd_dev->cow.file != NULL)
1222 cowify_req(io_req, ubd_dev->cow.bitmap,
1223 ubd_dev->cow.bitmap_offset, ubd_dev->cow.bitmap_len);
1284 struct ubd *ubd_dev = bdev->bd_disk->private_data;
1288 geo->cylinders = ubd_dev->size / (128 * 32 * 512);
1295 struct ubd *ubd_dev = bdev->bd_disk->private_data;
1302 ubd_id[ATA_ID_CYLS] = ubd_dev->size / (128 * 32 * 512);