From: Matthew Wilcox Date: Mon, 11 Feb 2019 21:13:59 +0000 (-0500) Subject: mspro_block: Convert disks IDR to IDA X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4a32bb3372b082d5e974abc8bfc3a5a042bb7e2e;p=users%2Fwilly%2Fxarray.git mspro_block: Convert disks IDR to IDA Signed-off-by: Matthew Wilcox --- diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c index cd6b8d4f2335..4a81eb59bb89 100644 --- a/drivers/memstick/core/mspro_block.c +++ b/drivers/memstick/core/mspro_block.c @@ -171,7 +171,7 @@ struct mspro_block_data { unsigned int current_page; }; -static DEFINE_IDR(mspro_block_disk_idr); +static DEFINE_IDA(mspro_block_disks); static DEFINE_MUTEX(mspro_block_disk_lock); static int mspro_block_complete_req(struct memstick_dev *card, int error); @@ -214,7 +214,7 @@ static void mspro_block_disk_release(struct gendisk *disk) if (!msb->usage_count) { kfree(msb); disk->private_data = NULL; - idr_remove(&mspro_block_disk_idr, disk_id); + ida_free(&mspro_block_disks, disk_id); put_disk(disk); } } @@ -1199,9 +1199,7 @@ static int mspro_block_init_disk(struct memstick_dev *card) msb->page_size = be16_to_cpu(sys_info->unit_size); - mutex_lock(&mspro_block_disk_lock); - disk_id = idr_alloc(&mspro_block_disk_idr, card, 0, 256, GFP_KERNEL); - mutex_unlock(&mspro_block_disk_lock); + disk_id = ida_alloc_max(&mspro_block_disks, 255, GFP_KERNEL); if (disk_id < 0) return disk_id; @@ -1250,9 +1248,7 @@ static int mspro_block_init_disk(struct memstick_dev *card) out_put_disk: put_disk(msb->disk); out_release_id: - mutex_lock(&mspro_block_disk_lock); - idr_remove(&mspro_block_disk_idr, disk_id); - mutex_unlock(&mspro_block_disk_lock); + ida_free(&mspro_block_disks, disk_id); return rc; } @@ -1462,7 +1458,6 @@ static void __exit mspro_block_exit(void) { memstick_unregister_driver(&mspro_block_driver); unregister_blkdev(major, DRIVER_NAME); - idr_destroy(&mspro_block_disk_idr); } module_init(mspro_block_init);