mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 22:02:02 +00:00
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
1 changed files with 7 additions and 22 deletions
|
@ -27,7 +27,6 @@
|
||||||
struct simdisk {
|
struct simdisk {
|
||||||
const char *filename;
|
const char *filename;
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
struct request_queue *queue;
|
|
||||||
struct gendisk *gd;
|
struct gendisk *gd;
|
||||||
struct proc_dir_entry *procfile;
|
struct proc_dir_entry *procfile;
|
||||||
int users;
|
int users;
|
||||||
|
@ -266,21 +265,13 @@ static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||||
spin_lock_init(&dev->lock);
|
spin_lock_init(&dev->lock);
|
||||||
dev->users = 0;
|
dev->users = 0;
|
||||||
|
|
||||||
dev->queue = blk_alloc_queue(NUMA_NO_NODE);
|
dev->gd = blk_alloc_disk(NUMA_NO_NODE);
|
||||||
if (dev->queue == NULL) {
|
if (!dev->gd)
|
||||||
pr_err("blk_alloc_queue failed\n");
|
return -ENOMEM;
|
||||||
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->major = simdisk_major;
|
dev->gd->major = simdisk_major;
|
||||||
dev->gd->first_minor = which;
|
dev->gd->first_minor = which;
|
||||||
|
dev->gd->minors = SIMDISK_MINORS;
|
||||||
dev->gd->fops = &simdisk_ops;
|
dev->gd->fops = &simdisk_ops;
|
||||||
dev->gd->queue = dev->queue;
|
|
||||||
dev->gd->private_data = dev;
|
dev->gd->private_data = dev;
|
||||||
snprintf(dev->gd->disk_name, 32, "simdisk%d", which);
|
snprintf(dev->gd->disk_name, 32, "simdisk%d", which);
|
||||||
set_capacity(dev->gd, 0);
|
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);
|
dev->procfile = proc_create_data(tmp, 0644, procdir, &simdisk_proc_ops, dev);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_alloc_disk:
|
|
||||||
blk_cleanup_queue(dev->queue);
|
|
||||||
dev->queue = NULL;
|
|
||||||
out_alloc_queue:
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init simdisk_init(void)
|
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 };
|
char tmp[2] = { '0' + which, 0 };
|
||||||
|
|
||||||
simdisk_detach(dev);
|
simdisk_detach(dev);
|
||||||
if (dev->gd)
|
if (dev->gd) {
|
||||||
del_gendisk(dev->gd);
|
del_gendisk(dev->gd);
|
||||||
if (dev->queue)
|
blk_cleanup_disk(dev->gd);
|
||||||
blk_cleanup_queue(dev->queue);
|
}
|
||||||
remove_proc_entry(tmp, procdir);
|
remove_proc_entry(tmp, procdir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue