forked from Minki/linux
simdisk: convert to blk_alloc_disk/blk_cleanup_disk
Convert the simdisk driver to use the blk_alloc_disk and blk_cleanup_disk helpers to simplify gendisk and request_queue allocation. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Link: https://lore.kernel.org/r/20210521055116.1053587-21-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
c3e2353836
commit
b1833edc4c
@ -27,7 +27,6 @@
|
||||
struct simdisk {
|
||||
const char *filename;
|
||||
spinlock_t lock;
|
||||
struct request_queue *queue;
|
||||
struct gendisk *gd;
|
||||
struct proc_dir_entry *procfile;
|
||||
int users;
|
||||
@ -266,21 +265,13 @@ static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||
spin_lock_init(&dev->lock);
|
||||
dev->users = 0;
|
||||
|
||||
dev->queue = blk_alloc_queue(NUMA_NO_NODE);
|
||||
if (dev->queue == NULL) {
|
||||
pr_err("blk_alloc_queue failed\n");
|
||||
goto out_alloc_queue;
|
||||
}
|
||||
|
||||
dev->gd = alloc_disk(SIMDISK_MINORS);
|
||||
if (dev->gd == NULL) {
|
||||
pr_err("alloc_disk failed\n");
|
||||
goto out_alloc_disk;
|
||||
}
|
||||
dev->gd = blk_alloc_disk(NUMA_NO_NODE);
|
||||
if (!dev->gd)
|
||||
return -ENOMEM;
|
||||
dev->gd->major = simdisk_major;
|
||||
dev->gd->first_minor = which;
|
||||
dev->gd->minors = SIMDISK_MINORS;
|
||||
dev->gd->fops = &simdisk_ops;
|
||||
dev->gd->queue = dev->queue;
|
||||
dev->gd->private_data = dev;
|
||||
snprintf(dev->gd->disk_name, 32, "simdisk%d", which);
|
||||
set_capacity(dev->gd, 0);
|
||||
@ -288,12 +279,6 @@ static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||
|
||||
dev->procfile = proc_create_data(tmp, 0644, procdir, &simdisk_proc_ops, dev);
|
||||
return 0;
|
||||
|
||||
out_alloc_disk:
|
||||
blk_cleanup_queue(dev->queue);
|
||||
dev->queue = NULL;
|
||||
out_alloc_queue:
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
static int __init simdisk_init(void)
|
||||
@ -343,10 +328,10 @@ static void simdisk_teardown(struct simdisk *dev, int which,
|
||||
char tmp[2] = { '0' + which, 0 };
|
||||
|
||||
simdisk_detach(dev);
|
||||
if (dev->gd)
|
||||
if (dev->gd) {
|
||||
del_gendisk(dev->gd);
|
||||
if (dev->queue)
|
||||
blk_cleanup_queue(dev->queue);
|
||||
blk_cleanup_disk(dev->gd);
|
||||
}
|
||||
remove_proc_entry(tmp, procdir);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user