Re: [RFC PATCH 01/18] block: add and use init disk helper

From: Christoph Hellwig
Date: Mon Oct 10 2022 - 03:59:13 EST


On Tue, Oct 04, 2022 at 10:00:10PM -0700, Chaitanya Kulkarni wrote:
> +void init_disk(struct gendisk *disk, int major, int first_minor,
> + int minors, sector_t sectors, void *private_data,
> + const struct block_device_operations *fops)
> +{
> + disk->major = major;
> + disk->first_minor = first_minor;
> + disk->minors = minors;
> + set_capacity(disk, sectors);
> + disk->private_data = private_data;
> + disk->fops = fops;

I don't like this at all. For one major/first_minor/minors are
optional and discouraged for new drivers. Setting the capacity is
a different thing and is done by helpers also used for revalidation
in many drivers.

It might make sense to pass the fops (and maybe private_data) to
blk_mq_alloc_disk / blk_alloc_disk, but even then I'm not quite
sure it is worth the churn.