[PATCH 7/8] bcache: move the del_gendisk call out of bcache_device_free
Coly Li
colyli at suse.de
Thu Aug 12 01:38:34 PDT 2021
On 8/9/21 2:40 PM, Christoph Hellwig wrote:
> Let the callers call del_gendisk so that we can check if add_disk
> has been called properly for the cached device case instead of relying
> on the block layer internal GENHD_FL_UP flag.
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
It looks good to me.
Reviewed-by: Coly Li <colyli at suse.de>
Thanks.
Coly Li
> ---
> drivers/md/bcache/super.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
> index d0f08e946453..f2874c77ff79 100644
> --- a/drivers/md/bcache/super.c
> +++ b/drivers/md/bcache/super.c
> @@ -885,11 +885,6 @@ static void bcache_device_free(struct bcache_device *d)
> bcache_device_detach(d);
>
> if (disk) {
> - bool disk_added = (disk->flags & GENHD_FL_UP) != 0;
> -
> - if (disk_added)
> - del_gendisk(disk);
> -
> blk_cleanup_disk(disk);
> ida_simple_remove(&bcache_device_idx,
> first_minor_to_idx(disk->first_minor));
> @@ -1371,8 +1366,10 @@ static void cached_dev_free(struct closure *cl)
>
> mutex_lock(&bch_register_lock);
>
> - if (atomic_read(&dc->running))
> + if (atomic_read(&dc->running)) {
> bd_unlink_disk_holder(dc->bdev, dc->disk.disk);
> + del_gendisk(dc->disk.disk);
> + }
> bcache_device_free(&dc->disk);
> list_del(&dc->list);
>
> @@ -1518,6 +1515,7 @@ static void flash_dev_free(struct closure *cl)
> mutex_lock(&bch_register_lock);
> atomic_long_sub(bcache_dev_sectors_dirty(d),
> &d->c->flash_dev_dirty_sectors);
> + del_gendisk(d->disk);
> bcache_device_free(d);
> mutex_unlock(&bch_register_lock);
> kobject_put(&d->kobj);
More information about the Linux-nvme
mailing list