summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-11-24 09:17:46 +0100
committerJens Axboe <axboe@kernel.dk>2020-12-01 14:53:40 -0700
commit9fc995a6e08349b5c5baff2cc31544b96ee2b1c3 (patch)
tree98284848498e8ef95e5f9e9ad2f7f11ba6eb1a61 /block
parent41e5c81984eac8ce87f2b4f57fec0bd90a049b2b (diff)
block: pass a block_device to blk_alloc_devt
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>
Diffstat (limited to 'block')
-rw-r--r--block/blk.h2
-rw-r--r--block/genhd.c14
-rw-r--r--block/partitions/core.c2
3 files changed, 9 insertions, 9 deletions
diff --git a/block/blk.h b/block/blk.h
index d5bf8f3a0781..9657c6da7c77 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 b7e39b41a275..fd6333332ab5 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -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;
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 6db9ca8b722d..3d8243334c7c 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;