mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
nvdimm-btt: convert to blk_alloc_disk/blk_cleanup_disk
Convert the nvdimm-btt 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: Hannes Reinecke <hare@suse.de> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Link: https://lore.kernel.org/r/20210521055116.1053587-17-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6c552ceabf
commit
d4e4e5835f
|
@ -1521,34 +1521,25 @@ static int btt_blk_init(struct btt *btt)
|
||||||
struct nd_btt *nd_btt = btt->nd_btt;
|
struct nd_btt *nd_btt = btt->nd_btt;
|
||||||
struct nd_namespace_common *ndns = nd_btt->ndns;
|
struct nd_namespace_common *ndns = nd_btt->ndns;
|
||||||
|
|
||||||
/* create a new disk and request queue for btt */
|
btt->btt_disk = blk_alloc_disk(NUMA_NO_NODE);
|
||||||
btt->btt_queue = blk_alloc_queue(NUMA_NO_NODE);
|
if (!btt->btt_disk)
|
||||||
if (!btt->btt_queue)
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
btt->btt_disk = alloc_disk(0);
|
|
||||||
if (!btt->btt_disk) {
|
|
||||||
blk_cleanup_queue(btt->btt_queue);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name);
|
nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name);
|
||||||
btt->btt_disk->first_minor = 0;
|
btt->btt_disk->first_minor = 0;
|
||||||
btt->btt_disk->fops = &btt_fops;
|
btt->btt_disk->fops = &btt_fops;
|
||||||
btt->btt_disk->private_data = btt;
|
btt->btt_disk->private_data = btt;
|
||||||
btt->btt_disk->queue = btt->btt_queue;
|
|
||||||
|
|
||||||
blk_queue_logical_block_size(btt->btt_queue, btt->sector_size);
|
blk_queue_logical_block_size(btt->btt_disk->queue, btt->sector_size);
|
||||||
blk_queue_max_hw_sectors(btt->btt_queue, UINT_MAX);
|
blk_queue_max_hw_sectors(btt->btt_disk->queue, UINT_MAX);
|
||||||
blk_queue_flag_set(QUEUE_FLAG_NONROT, btt->btt_queue);
|
blk_queue_flag_set(QUEUE_FLAG_NONROT, btt->btt_disk->queue);
|
||||||
|
|
||||||
if (btt_meta_size(btt)) {
|
if (btt_meta_size(btt)) {
|
||||||
int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt));
|
int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt));
|
||||||
|
|
||||||
if (rc) {
|
if (rc) {
|
||||||
del_gendisk(btt->btt_disk);
|
del_gendisk(btt->btt_disk);
|
||||||
put_disk(btt->btt_disk);
|
blk_cleanup_disk(btt->btt_disk);
|
||||||
blk_cleanup_queue(btt->btt_queue);
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1563,8 +1554,7 @@ static int btt_blk_init(struct btt *btt)
|
||||||
static void btt_blk_cleanup(struct btt *btt)
|
static void btt_blk_cleanup(struct btt *btt)
|
||||||
{
|
{
|
||||||
del_gendisk(btt->btt_disk);
|
del_gendisk(btt->btt_disk);
|
||||||
put_disk(btt->btt_disk);
|
blk_cleanup_disk(btt->btt_disk);
|
||||||
blk_cleanup_queue(btt->btt_queue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -201,7 +201,6 @@ struct badblocks;
|
||||||
/**
|
/**
|
||||||
* struct btt - handle for a BTT instance
|
* struct btt - handle for a BTT instance
|
||||||
* @btt_disk: Pointer to the gendisk for BTT device
|
* @btt_disk: Pointer to the gendisk for BTT device
|
||||||
* @btt_queue: Pointer to the request queue for the BTT device
|
|
||||||
* @arena_list: Head of the list of arenas
|
* @arena_list: Head of the list of arenas
|
||||||
* @debugfs_dir: Debugfs dentry
|
* @debugfs_dir: Debugfs dentry
|
||||||
* @nd_btt: Parent nd_btt struct
|
* @nd_btt: Parent nd_btt struct
|
||||||
|
@ -219,7 +218,6 @@ struct badblocks;
|
||||||
*/
|
*/
|
||||||
struct btt {
|
struct btt {
|
||||||
struct gendisk *btt_disk;
|
struct gendisk *btt_disk;
|
||||||
struct request_queue *btt_queue;
|
|
||||||
struct list_head arena_list;
|
struct list_head arena_list;
|
||||||
struct dentry *debugfs_dir;
|
struct dentry *debugfs_dir;
|
||||||
struct nd_btt *nd_btt;
|
struct nd_btt *nd_btt;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user