nvdimm-pmem: convert to blk_alloc_disk/blk_cleanup_disk
Convert the nvdimm-pmem 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-18-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
d4e4e5835f
commit
87eb73b2ca
1 changed files with 5 additions and 10 deletions
|
@ -338,7 +338,7 @@ static void pmem_pagemap_cleanup(struct dev_pagemap *pgmap)
|
||||||
struct request_queue *q =
|
struct request_queue *q =
|
||||||
container_of(pgmap->ref, struct request_queue, q_usage_counter);
|
container_of(pgmap->ref, struct request_queue, q_usage_counter);
|
||||||
|
|
||||||
blk_cleanup_queue(q);
|
blk_cleanup_disk(queue_to_disk(q));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pmem_release_queue(void *pgmap)
|
static void pmem_release_queue(void *pgmap)
|
||||||
|
@ -361,7 +361,6 @@ static void pmem_release_disk(void *__pmem)
|
||||||
kill_dax(pmem->dax_dev);
|
kill_dax(pmem->dax_dev);
|
||||||
put_dax(pmem->dax_dev);
|
put_dax(pmem->dax_dev);
|
||||||
del_gendisk(pmem->disk);
|
del_gendisk(pmem->disk);
|
||||||
put_disk(pmem->disk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dev_pagemap_ops fsdax_pagemap_ops = {
|
static const struct dev_pagemap_ops fsdax_pagemap_ops = {
|
||||||
|
@ -422,10 +421,12 @@ static int pmem_attach_disk(struct device *dev,
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
|
|
||||||
q = blk_alloc_queue(dev_to_node(dev));
|
disk = blk_alloc_disk(nid);
|
||||||
if (!q)
|
if (!disk)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
q = disk->queue;
|
||||||
|
|
||||||
|
pmem->disk = disk;
|
||||||
pmem->pfn_flags = PFN_DEV;
|
pmem->pfn_flags = PFN_DEV;
|
||||||
pmem->pgmap.ref = &q->q_usage_counter;
|
pmem->pgmap.ref = &q->q_usage_counter;
|
||||||
if (is_nd_pfn(dev)) {
|
if (is_nd_pfn(dev)) {
|
||||||
|
@ -470,11 +471,6 @@ static int pmem_attach_disk(struct device *dev,
|
||||||
if (pmem->pfn_flags & PFN_MAP)
|
if (pmem->pfn_flags & PFN_MAP)
|
||||||
blk_queue_flag_set(QUEUE_FLAG_DAX, q);
|
blk_queue_flag_set(QUEUE_FLAG_DAX, q);
|
||||||
|
|
||||||
disk = alloc_disk_node(0, nid);
|
|
||||||
if (!disk)
|
|
||||||
return -ENOMEM;
|
|
||||||
pmem->disk = disk;
|
|
||||||
|
|
||||||
disk->fops = &pmem_fops;
|
disk->fops = &pmem_fops;
|
||||||
disk->queue = q;
|
disk->queue = q;
|
||||||
disk->private_data = pmem;
|
disk->private_data = pmem;
|
||||||
|
@ -490,7 +486,6 @@ static int pmem_attach_disk(struct device *dev,
|
||||||
flags = DAXDEV_F_SYNC;
|
flags = DAXDEV_F_SYNC;
|
||||||
dax_dev = alloc_dax(pmem, disk->disk_name, &pmem_dax_ops, flags);
|
dax_dev = alloc_dax(pmem, disk->disk_name, &pmem_dax_ops, flags);
|
||||||
if (IS_ERR(dax_dev)) {
|
if (IS_ERR(dax_dev)) {
|
||||||
put_disk(disk);
|
|
||||||
return PTR_ERR(dax_dev);
|
return PTR_ERR(dax_dev);
|
||||||
}
|
}
|
||||||
dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
|
dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
|
||||||
|
|
Loading…
Add table
Reference in a new issue