diff options
author | Christoph Hellwig | 2021-06-16 07:39:33 +0200 |
---|---|---|
committer | Jens Axboe | 2021-06-30 15:34:04 -0600 |
commit | 249cda3325e0ff35dd8af9b5885f3aaf4ddd165d (patch) | |
tree | c95b52361b2772525ba2ed3990b8599c085b0f03 /drivers/mmc | |
parent | 6497ef8df568afbf5f3e38825a4590ff41611a54 (diff) |
mmc: remove an extra blk_{get,put}_queue pair
The gendisk already acquires a reference to the queue when add_disk
is called, which dropped on put_disk. So remove the superflous
extra refcounting.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210616053934.880951-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/core/block.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 88f4c215caa6..d663daef57f2 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -202,7 +202,7 @@ static void mmc_blk_put(struct mmc_blk_data *md) md->usage--; if (md->usage == 0) { int devidx = mmc_get_devidx(md->disk); - blk_put_queue(md->queue.queue); + ida_simple_remove(&mmc_blk_ida, devidx); put_disk(md->disk); kfree(md); @@ -2335,18 +2335,6 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, md->queue.blkdata = md; - /* - * Keep an extra reference to the queue so that we can shutdown the - * queue (i.e. call blk_cleanup_queue()) while there are still - * references to the 'md'. The corresponding blk_put_queue() is in - * mmc_blk_put(). - */ - if (!blk_get_queue(md->queue.queue)) { - mmc_cleanup_queue(&md->queue); - ret = -ENODEV; - goto err_putdisk; - } - md->disk->major = MMC_BLOCK_MAJOR; md->disk->first_minor = devidx * perdev_minors; md->disk->fops = &mmc_bdops; |