Message ID | 20210809064028.1198327-8-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/8] mmc: block: let device_add_disk create disk attributes | expand |
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@lst.de> It looks good to me. Reviewed-by: Coly Li <colyli@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);
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);
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@lst.de> --- drivers/md/bcache/super.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)