Exemple #1
0
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);
}
Exemple #2
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));
}
Exemple #3
0
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;
}
Exemple #4
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);
}
Exemple #5
0
/**
 * 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 */
}
Exemple #6
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);

	/* 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);
}
Exemple #7
0
Fichier : zvol.c Projet : avg-I/zfs
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));
}