[dm-devel] [PATCH 39/44] block: pass a block_device to blk_alloc_devt

Jan Kara jack at suse.cz
Thu Nov 26 17:47:54 UTC 2020


On Thu 26-11-20 14:04:17, Christoph Hellwig wrote:
> Pass the block_device actually needed instead of the hd_struct.
> 
> Signed-off-by: Christoph Hellwig <hch at lst.de>

Looks good. You can add:

Reviewed-by: Jan Kara <jack at suse.cz>

								Honza

> ---
>  block/blk.h             |  2 +-
>  block/genhd.c           | 14 +++++++-------
>  block/partitions/core.c |  2 +-
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/block/blk.h b/block/blk.h
> index d5bf8f3a078186..9657c6da7c770c 100644
> --- a/block/blk.h
> +++ b/block/blk.h
> @@ -350,7 +350,7 @@ static inline void blk_queue_free_zone_bitmaps(struct request_queue *q) {}
>  
>  struct block_device *disk_map_sector_rcu(struct gendisk *disk, sector_t sector);
>  
> -int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
> +int blk_alloc_devt(struct block_device *part, dev_t *devt);
>  void blk_free_devt(dev_t devt);
>  char *disk_name(struct gendisk *hd, int partno, char *buf);
>  #define ADDPART_FLAG_NONE	0
> diff --git a/block/genhd.c b/block/genhd.c
> index a85ffd7385718d..89cd0ba8e3b84a 100644
> --- a/block/genhd.c
> +++ b/block/genhd.c
> @@ -559,8 +559,8 @@ static int blk_mangle_minor(int minor)
>  }
>  
>  /**
> - * blk_alloc_devt - allocate a dev_t for a partition
> - * @part: partition to allocate dev_t for
> + * blk_alloc_devt - allocate a dev_t for a block device
> + * @bdev: block device to allocate dev_t for
>   * @devt: out parameter for resulting dev_t
>   *
>   * Allocate a dev_t for block device.
> @@ -572,14 +572,14 @@ static int blk_mangle_minor(int minor)
>   * CONTEXT:
>   * Might sleep.
>   */
> -int blk_alloc_devt(struct hd_struct *part, dev_t *devt)
> +int blk_alloc_devt(struct block_device *bdev, dev_t *devt)
>  {
> -	struct gendisk *disk = part_to_disk(part);
> +	struct gendisk *disk = bdev->bd_disk;
>  	int idx;
>  
>  	/* in consecutive minor range? */
> -	if (part->bdev->bd_partno < disk->minors) {
> -		*devt = MKDEV(disk->major, disk->first_minor + part->bdev->bd_partno);
> +	if (bdev->bd_partno < disk->minors) {
> +		*devt = MKDEV(disk->major, disk->first_minor + bdev->bd_partno);
>  		return 0;
>  	}
>  
> @@ -735,7 +735,7 @@ static void __device_add_disk(struct device *parent, struct gendisk *disk,
>  
>  	disk->flags |= GENHD_FL_UP;
>  
> -	retval = blk_alloc_devt(disk->part0->bd_part, &devt);
> +	retval = blk_alloc_devt(disk->part0, &devt);
>  	if (retval) {
>  		WARN_ON(1);
>  		return;
> diff --git a/block/partitions/core.c b/block/partitions/core.c
> index ecc3228a086956..4f823c4c733518 100644
> --- a/block/partitions/core.c
> +++ b/block/partitions/core.c
> @@ -392,7 +392,7 @@ static struct hd_struct *add_partition(struct gendisk *disk, int partno,
>  	pdev->type = &part_type;
>  	pdev->parent = ddev;
>  
> -	err = blk_alloc_devt(p, &devt);
> +	err = blk_alloc_devt(bdev, &devt);
>  	if (err)
>  		goto out_bdput;
>  	pdev->devt = devt;
> -- 
> 2.29.2
> 
-- 
Jan Kara <jack at suse.com>
SUSE Labs, CR




More information about the dm-devel mailing list