block: pass a block_device to blk_alloc_devt
authorChristoph Hellwig <hch@lst.de>
Tue, 24 Nov 2020 08:17:46 +0000 (09:17 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 1 Dec 2020 21:53:40 +0000 (14:53 -0700)
Pass the block_device actually needed instead of the hd_struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk.h
block/genhd.c
block/partitions/core.c

index d5bf8f3..9657c6d 100644 (file)
@@ -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
index b7e39b4..fd63333 100644 (file)
@@ -570,8 +570,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.
@@ -583,14 +583,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;
        }
 
@@ -746,7 +746,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;
index 6db9ca8..3d82433 100644 (file)
@@ -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;