int zvol_init(void) { int error; zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri, zvol_threads, INT_MAX, TASKQ_PREPOPULATE); if (zvol_taskq == NULL) { printk(KERN_INFO "ZFS: taskq_create() failed\n"); return (-ENOMEM); } error = register_blkdev(zvol_major, ZVOL_DRIVER); if (error) { printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error); taskq_destroy(zvol_taskq); return (error); } blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS, THIS_MODULE, zvol_probe, NULL, NULL); mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); list_create(&zvol_state_list, sizeof (zvol_state_t), offsetof(zvol_state_t, zv_next)); (void) zvol_create_minors(NULL); return (0); }
int zvol_init(void) { int error; list_create(&zvol_state_list, sizeof (zvol_state_t), offsetof(zvol_state_t, zv_next)); mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); error = register_blkdev(zvol_major, ZVOL_DRIVER); if (error) { printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error); goto out; } blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS, THIS_MODULE, zvol_probe, NULL, NULL); return (0); out: mutex_destroy(&zvol_state_lock); list_destroy(&zvol_state_list); return (SET_ERROR(error)); }
static int __init tzmem_blkdev_init(void) { #ifdef MTEE_TZMEM_DBG pr_warn("====> tzmem_blkdev_init\n"); #endif if (register_blkdev(IO_NODE_MAJOR_TZMEM, DEV_TZMEM)) { pr_debug(MTEE_TZMEM_TAG "[%s] tzmem_blkdev_init: register_blkdev error\n", MODULE_NAME); return -EFAULT; } tz_client_dev = MKDEV(IO_NODE_MAJOR_TZMEM, IO_NODE_MINOR_TZMEM); blk_register_region(tz_client_dev, IO_NODE_NUMBER_TZMEM, THIS_MODULE, tzmem_blk_probe, NULL, NULL); #if 0 /* create /dev/tzmem automaticly */ pTzClass = class_create(THIS_MODULE, DEV_TZMEM); if (IS_ERR(pTzClass)) { int ret = PTR_ERR(pTzClass); pr_debug(MTEE_TZMEM_TAG "[%s] could not create class for the device, ret:%d\n", MODULE_NAME, ret); return ret; } pTzDevice = device_create(pTzClass, NULL, tz_client_dev, NULL, DEV_TZMEM); #endif return 0; }
/** * add_disk - add partitioning information to kernel list * @disk: per-device partitioning information * * This function registers the partitioning information in @disk * with the kernel. */ void add_disk(struct gendisk *disk) { disk->flags |= GENHD_FL_UP; blk_register_region(MKDEV(disk->major, disk->first_minor), disk->minors, NULL, exact_match, exact_lock, disk); register_disk(disk); blk_register_queue(disk); }
/** * add_gendisk - add partitioning information to kernel list * @disk: per-device partitioning information * * This function registers the partitioning information in @disk * with the kernel. */ void add_disk(struct gendisk *disk) { disk->flags |= GENHD_FL_UP; blk_register_region(MKDEV(disk->major, disk->first_minor), disk->minors, NULL, exact_match, exact_lock, disk); register_disk(disk); elv_register_queue(disk); #ifdef UCSB_IO ucsb_debug("Added disk %15s, diskk major:minor=%d:%d\n", disk->disk_name, disk->major, disk->first_minor); #endif /* ucsb_io */ }
/** * add_disk - add partitioning information to kernel list * @disk: per-device partitioning information * * This function registers the partitioning information in @disk * with the kernel. */ void add_disk(struct gendisk *disk) { disk->flags |= GENHD_FL_UP; blk_register_region(MKDEV(disk->major, disk->first_minor), disk->minors, NULL, exact_match, exact_lock, disk); register_disk(disk); blk_register_queue(disk); /* Wake up queue in init/main.c. */ #if 0 printk("Waking up queue on %s\n", disk->disk_name); #endif wake_up_interruptible(&disk_wait_h); }
int zvol_init(void) { int error; list_create(&zvol_state_list, sizeof (zvol_state_t), offsetof(zvol_state_t, zv_next)); mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri, zvol_threads * 2, INT_MAX, TASKQ_PREPOPULATE | TASKQ_DYNAMIC); if (zvol_taskq == NULL) { printk(KERN_INFO "ZFS: taskq_create() failed\n"); error = -ENOMEM; goto out1; } error = register_blkdev(zvol_major, ZVOL_DRIVER); if (error) { printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error); goto out2; } blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS, THIS_MODULE, zvol_probe, NULL, NULL); return (0); out2: taskq_destroy(zvol_taskq); out1: mutex_destroy(&zvol_state_lock); list_destroy(&zvol_state_list); return (SET_ERROR(error)); }