add a ->free_disk block_device_operation v3

Christoph Hellwig
2022-02-15T09:45:31Z

Hi Jens,

this series adds a ->free_disk method to struct block_device_operation so that
drivers can defer freeing their disk private data until the gendisk goes away
and don't need to play games with the validity of ->private_data.

This also converts three simple drivers over as example, but eventually I
imagine that all drivers with private data will use it.

Changes since v2:
- only call ->free_disk after add_disk has returned to simplify probe error
handling
Changes since v1:
- fix a tag_set use after free in virtio_blk

Diffstat:
block/genhd.c | 5 ++
drivers/block/virtio_blk.c | 66 +++++++-----------------------------
drivers/memstick/core/ms_block.c | 64 ++++++++--------------------------
drivers/memstick/core/ms_block.h | 1
drivers/memstick/core/mspro_block.c | 57 +++++--------------------------
include/linux/blkdev.h | 2 +
6 files changed, 46 insertions(+), 149 deletions(-)