mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
41e5c81984
commit
9fc995a6e0
|
@ -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);
|
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);
|
void blk_free_devt(dev_t devt);
|
||||||
char *disk_name(struct gendisk *hd, int partno, char *buf);
|
char *disk_name(struct gendisk *hd, int partno, char *buf);
|
||||||
#define ADDPART_FLAG_NONE 0
|
#define ADDPART_FLAG_NONE 0
|
||||||
|
|
|
@ -570,8 +570,8 @@ static int blk_mangle_minor(int minor)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blk_alloc_devt - allocate a dev_t for a partition
|
* blk_alloc_devt - allocate a dev_t for a block device
|
||||||
* @part: partition to allocate dev_t for
|
* @bdev: block device to allocate dev_t for
|
||||||
* @devt: out parameter for resulting dev_t
|
* @devt: out parameter for resulting dev_t
|
||||||
*
|
*
|
||||||
* Allocate a dev_t for block device.
|
* Allocate a dev_t for block device.
|
||||||
|
@ -583,14 +583,14 @@ static int blk_mangle_minor(int minor)
|
||||||
* CONTEXT:
|
* CONTEXT:
|
||||||
* Might sleep.
|
* 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;
|
int idx;
|
||||||
|
|
||||||
/* in consecutive minor range? */
|
/* in consecutive minor range? */
|
||||||
if (part->bdev->bd_partno < disk->minors) {
|
if (bdev->bd_partno < disk->minors) {
|
||||||
*devt = MKDEV(disk->major, disk->first_minor + part->bdev->bd_partno);
|
*devt = MKDEV(disk->major, disk->first_minor + bdev->bd_partno);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -746,7 +746,7 @@ static void __device_add_disk(struct device *parent, struct gendisk *disk,
|
||||||
|
|
||||||
disk->flags |= GENHD_FL_UP;
|
disk->flags |= GENHD_FL_UP;
|
||||||
|
|
||||||
retval = blk_alloc_devt(disk->part0->bd_part, &devt);
|
retval = blk_alloc_devt(disk->part0, &devt);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -392,7 +392,7 @@ static struct hd_struct *add_partition(struct gendisk *disk, int partno,
|
||||||
pdev->type = &part_type;
|
pdev->type = &part_type;
|
||||||
pdev->parent = ddev;
|
pdev->parent = ddev;
|
||||||
|
|
||||||
err = blk_alloc_devt(p, &devt);
|
err = blk_alloc_devt(bdev, &devt);
|
||||||
if (err)
|
if (err)
|
||||||
goto out_bdput;
|
goto out_bdput;
|
||||||
pdev->devt = devt;
|
pdev->devt = devt;
|
||||||
|
|
Loading…
Reference in New Issue