ubd_dev 265 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev; ubd_dev 318 arch/um/drivers/ubd_kern.c ubd_dev = &ubd_devs[n]; ubd_dev 319 arch/um/drivers/ubd_kern.c if(ubd_dev->file != NULL){ ubd_dev 337 arch/um/drivers/ubd_kern.c ubd_dev->no_cow = 1; ubd_dev 340 arch/um/drivers/ubd_kern.c ubd_dev->shared = 1; ubd_dev 343 arch/um/drivers/ubd_kern.c ubd_dev->no_trim = 1; ubd_dev 369 arch/um/drivers/ubd_kern.c if(ubd_dev->no_cow){ ubd_dev 379 arch/um/drivers/ubd_kern.c ubd_dev->file = str; ubd_dev 380 arch/um/drivers/ubd_kern.c ubd_dev->cow.file = backing_file; ubd_dev 381 arch/um/drivers/ubd_kern.c ubd_dev->boot_openflags = flags; ubd_dev 555 arch/um/drivers/ubd_kern.c static inline int ubd_file_size(struct ubd *ubd_dev, __u64 *size_out) ubd_dev 569 arch/um/drivers/ubd_kern.c if (ubd_dev->file && ubd_dev->cow.file) { ubd_dev 570 arch/um/drivers/ubd_kern.c file = ubd_dev->cow.file; ubd_dev 575 arch/um/drivers/ubd_kern.c fd = os_open_file(ubd_dev->file, of_read(OPENFLAGS()), 0); ubd_dev 584 arch/um/drivers/ubd_kern.c file = ubd_dev->file; ubd_dev 774 arch/um/drivers/ubd_kern.c static void ubd_close_dev(struct ubd *ubd_dev) ubd_dev 776 arch/um/drivers/ubd_kern.c os_close_file(ubd_dev->fd); ubd_dev 777 arch/um/drivers/ubd_kern.c if(ubd_dev->cow.file == NULL) ubd_dev 780 arch/um/drivers/ubd_kern.c os_close_file(ubd_dev->cow.fd); ubd_dev 781 arch/um/drivers/ubd_kern.c vfree(ubd_dev->cow.bitmap); ubd_dev 782 arch/um/drivers/ubd_kern.c ubd_dev->cow.bitmap = NULL; ubd_dev 785 arch/um/drivers/ubd_kern.c static int ubd_open_dev(struct ubd *ubd_dev) ubd_dev 792 arch/um/drivers/ubd_kern.c ubd_dev->openflags = ubd_dev->boot_openflags; ubd_dev 794 arch/um/drivers/ubd_kern.c create_ptr = (ubd_dev->cow.file != NULL) ? &create_cow : NULL; ubd_dev 795 arch/um/drivers/ubd_kern.c back_ptr = ubd_dev->no_cow ? NULL : &ubd_dev->cow.file; ubd_dev 797 arch/um/drivers/ubd_kern.c fd = open_ubd_file(ubd_dev->file, &ubd_dev->openflags, ubd_dev->shared, ubd_dev 798 arch/um/drivers/ubd_kern.c back_ptr, &ubd_dev->cow.bitmap_offset, ubd_dev 799 arch/um/drivers/ubd_kern.c &ubd_dev->cow.bitmap_len, &ubd_dev->cow.data_offset, ubd_dev 803 arch/um/drivers/ubd_kern.c fd = create_cow_file(ubd_dev->file, ubd_dev->cow.file, ubd_dev 804 arch/um/drivers/ubd_kern.c ubd_dev->openflags, SECTOR_SIZE, PAGE_SIZE, ubd_dev 805 arch/um/drivers/ubd_kern.c &ubd_dev->cow.bitmap_offset, ubd_dev 806 arch/um/drivers/ubd_kern.c &ubd_dev->cow.bitmap_len, ubd_dev 807 arch/um/drivers/ubd_kern.c &ubd_dev->cow.data_offset); ubd_dev 810 arch/um/drivers/ubd_kern.c "\"%s\"\n", ubd_dev->file, ubd_dev->cow.file); ubd_dev 815 arch/um/drivers/ubd_kern.c printk("Failed to open '%s', errno = %d\n", ubd_dev->file, ubd_dev 819 arch/um/drivers/ubd_kern.c ubd_dev->fd = fd; ubd_dev 821 arch/um/drivers/ubd_kern.c if(ubd_dev->cow.file != NULL){ ubd_dev 822 arch/um/drivers/ubd_kern.c blk_queue_max_hw_sectors(ubd_dev->queue, 8 * sizeof(long)); ubd_dev 825 arch/um/drivers/ubd_kern.c ubd_dev->cow.bitmap = vmalloc(ubd_dev->cow.bitmap_len); ubd_dev 826 arch/um/drivers/ubd_kern.c if(ubd_dev->cow.bitmap == NULL){ ubd_dev 832 arch/um/drivers/ubd_kern.c err = read_cow_bitmap(ubd_dev->fd, ubd_dev->cow.bitmap, ubd_dev 833 arch/um/drivers/ubd_kern.c ubd_dev->cow.bitmap_offset, ubd_dev 834 arch/um/drivers/ubd_kern.c ubd_dev->cow.bitmap_len); ubd_dev 838 arch/um/drivers/ubd_kern.c flags = ubd_dev->openflags; ubd_dev 840 arch/um/drivers/ubd_kern.c err = open_ubd_file(ubd_dev->cow.file, &flags, ubd_dev->shared, NULL, ubd_dev 843 arch/um/drivers/ubd_kern.c ubd_dev->cow.fd = err; ubd_dev 845 arch/um/drivers/ubd_kern.c if (ubd_dev->no_trim == 0) { ubd_dev 846 arch/um/drivers/ubd_kern.c ubd_dev->queue->limits.discard_granularity = SECTOR_SIZE; ubd_dev 847 arch/um/drivers/ubd_kern.c ubd_dev->queue->limits.discard_alignment = SECTOR_SIZE; ubd_dev 848 arch/um/drivers/ubd_kern.c blk_queue_max_discard_sectors(ubd_dev->queue, UBD_MAX_REQUEST); ubd_dev 849 arch/um/drivers/ubd_kern.c blk_queue_max_write_zeroes_sectors(ubd_dev->queue, UBD_MAX_REQUEST); ubd_dev 850 arch/um/drivers/ubd_kern.c blk_queue_flag_set(QUEUE_FLAG_DISCARD, ubd_dev->queue); ubd_dev 852 arch/um/drivers/ubd_kern.c blk_queue_flag_set(QUEUE_FLAG_NONROT, ubd_dev->queue); ubd_dev 855 arch/um/drivers/ubd_kern.c os_close_file(ubd_dev->fd); ubd_dev 861 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = dev_get_drvdata(dev); ubd_dev 863 arch/um/drivers/ubd_kern.c blk_cleanup_queue(ubd_dev->queue); ubd_dev 864 arch/um/drivers/ubd_kern.c blk_mq_free_tag_set(&ubd_dev->tag_set); ubd_dev 865 arch/um/drivers/ubd_kern.c *ubd_dev = ((struct ubd) DEFAULT_UBD); ubd_dev 913 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = &ubd_devs[n]; ubd_dev 916 arch/um/drivers/ubd_kern.c if(ubd_dev->file == NULL) ubd_dev 919 arch/um/drivers/ubd_kern.c err = ubd_file_size(ubd_dev, &ubd_dev->size); ubd_dev 925 arch/um/drivers/ubd_kern.c ubd_dev->size = ROUND_BLOCK(ubd_dev->size); ubd_dev 927 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.ops = &ubd_mq_ops; ubd_dev 928 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.queue_depth = 64; ubd_dev 929 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.numa_node = NUMA_NO_NODE; ubd_dev 930 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.flags = BLK_MQ_F_SHOULD_MERGE; ubd_dev 931 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.driver_data = ubd_dev; ubd_dev 932 arch/um/drivers/ubd_kern.c ubd_dev->tag_set.nr_hw_queues = 1; ubd_dev 934 arch/um/drivers/ubd_kern.c err = blk_mq_alloc_tag_set(&ubd_dev->tag_set); ubd_dev 938 arch/um/drivers/ubd_kern.c ubd_dev->queue = blk_mq_init_queue(&ubd_dev->tag_set); ubd_dev 939 arch/um/drivers/ubd_kern.c if (IS_ERR(ubd_dev->queue)) { ubd_dev 940 arch/um/drivers/ubd_kern.c err = PTR_ERR(ubd_dev->queue); ubd_dev 944 arch/um/drivers/ubd_kern.c ubd_dev->queue->queuedata = ubd_dev; ubd_dev 945 arch/um/drivers/ubd_kern.c blk_queue_write_cache(ubd_dev->queue, true, false); ubd_dev 947 arch/um/drivers/ubd_kern.c blk_queue_max_segments(ubd_dev->queue, MAX_SG); ubd_dev 948 arch/um/drivers/ubd_kern.c err = ubd_disk_register(UBD_MAJOR, ubd_dev->size, n, &ubd_gendisk[n]); ubd_dev 955 arch/um/drivers/ubd_kern.c ubd_disk_register(fake_major, ubd_dev->size, n, ubd_dev 970 arch/um/drivers/ubd_kern.c blk_mq_free_tag_set(&ubd_dev->tag_set); ubd_dev 971 arch/um/drivers/ubd_kern.c if (!(IS_ERR(ubd_dev->queue))) ubd_dev 972 arch/um/drivers/ubd_kern.c blk_cleanup_queue(ubd_dev->queue); ubd_dev 1015 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev; ubd_dev 1024 arch/um/drivers/ubd_kern.c ubd_dev = &ubd_devs[n]; ubd_dev 1027 arch/um/drivers/ubd_kern.c if(ubd_dev->file == NULL){ ubd_dev 1032 arch/um/drivers/ubd_kern.c CONFIG_CHUNK(str, size, len, ubd_dev->file, 0); ubd_dev 1034 arch/um/drivers/ubd_kern.c if(ubd_dev->cow.file != NULL){ ubd_dev 1036 arch/um/drivers/ubd_kern.c CONFIG_CHUNK(str, size, len, ubd_dev->cow.file, 1); ubd_dev 1058 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev; ubd_dev 1063 arch/um/drivers/ubd_kern.c ubd_dev = &ubd_devs[n]; ubd_dev 1065 arch/um/drivers/ubd_kern.c if(ubd_dev->file == NULL) ubd_dev 1070 arch/um/drivers/ubd_kern.c if(ubd_dev->count > 0) ubd_dev 1086 arch/um/drivers/ubd_kern.c platform_device_unregister(&ubd_dev->pdev); ubd_dev 1114 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = &ubd_devs[0]; ubd_dev 1117 arch/um/drivers/ubd_kern.c if(ubd_dev->file == NULL) ubd_dev 1118 arch/um/drivers/ubd_kern.c ubd_dev->file = "root_fs"; ubd_dev 1216 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = disk->private_data; ubd_dev 1220 arch/um/drivers/ubd_kern.c if(ubd_dev->count == 0){ ubd_dev 1221 arch/um/drivers/ubd_kern.c err = ubd_open_dev(ubd_dev); ubd_dev 1224 arch/um/drivers/ubd_kern.c disk->disk_name, ubd_dev->file, -err); ubd_dev 1228 arch/um/drivers/ubd_kern.c ubd_dev->count++; ubd_dev 1229 arch/um/drivers/ubd_kern.c set_disk_ro(disk, !ubd_dev->openflags.w); ubd_dev 1244 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = disk->private_data; ubd_dev 1247 arch/um/drivers/ubd_kern.c if(--ubd_dev->count == 0) ubd_dev 1248 arch/um/drivers/ubd_kern.c ubd_close_dev(ubd_dev); ubd_dev 1378 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = hctx->queue->queuedata; ubd_dev 1384 arch/um/drivers/ubd_kern.c spin_lock_irq(&ubd_dev->lock); ubd_dev 1404 arch/um/drivers/ubd_kern.c spin_unlock_irq(&ubd_dev->lock); ubd_dev 1418 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = bdev->bd_disk->private_data; ubd_dev 1422 arch/um/drivers/ubd_kern.c geo->cylinders = ubd_dev->size / (128 * 32 * 512); ubd_dev 1429 arch/um/drivers/ubd_kern.c struct ubd *ubd_dev = bdev->bd_disk->private_data; ubd_dev 1436 arch/um/drivers/ubd_kern.c ubd_id[ATA_ID_CYLS] = ubd_dev->size / (128 * 32 * 512);