diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-06-15 21:17:27 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-06-15 22:53:06 -0400 |
commit | e63a46bef01ff3064f44dba145833284fb6adeec (patch) | |
tree | 01890349347ab2a8bf4ac1bb42004647d88ea4bf /block | |
parent | 1b57e66384e2d21150301e68078526fac5680a16 (diff) |
block: introduce device_add_disk()
In preparation for removing the ->driverfs_dev member of a gendisk, add
an api that takes the parent device as a parameter to add_disk(). For
now this maintains the status quo of WARN()ing on failure, but not
return a error code.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/genhd.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/block/genhd.c b/block/genhd.c index 9f42526b4d62..fb2d9aeb75a5 100644 --- a/block/genhd.c +++ b/block/genhd.c | |||
@@ -506,7 +506,7 @@ static int exact_lock(dev_t devt, void *data) | |||
506 | return 0; | 506 | return 0; |
507 | } | 507 | } |
508 | 508 | ||
509 | static void register_disk(struct gendisk *disk) | 509 | static void register_disk(struct device *parent, struct gendisk *disk) |
510 | { | 510 | { |
511 | struct device *ddev = disk_to_dev(disk); | 511 | struct device *ddev = disk_to_dev(disk); |
512 | struct block_device *bdev; | 512 | struct block_device *bdev; |
@@ -514,7 +514,7 @@ static void register_disk(struct gendisk *disk) | |||
514 | struct hd_struct *part; | 514 | struct hd_struct *part; |
515 | int err; | 515 | int err; |
516 | 516 | ||
517 | ddev->parent = disk->driverfs_dev; | 517 | ddev->parent = parent; |
518 | 518 | ||
519 | dev_set_name(ddev, "%s", disk->disk_name); | 519 | dev_set_name(ddev, "%s", disk->disk_name); |
520 | 520 | ||
@@ -573,7 +573,8 @@ exit: | |||
573 | } | 573 | } |
574 | 574 | ||
575 | /** | 575 | /** |
576 | * add_disk - add partitioning information to kernel list | 576 | * device_add_disk - add partitioning information to kernel list |
577 | * @parent: parent device for the disk | ||
577 | * @disk: per-device partitioning information | 578 | * @disk: per-device partitioning information |
578 | * | 579 | * |
579 | * This function registers the partitioning information in @disk | 580 | * This function registers the partitioning information in @disk |
@@ -581,7 +582,7 @@ exit: | |||
581 | * | 582 | * |
582 | * FIXME: error handling | 583 | * FIXME: error handling |
583 | */ | 584 | */ |
584 | void add_disk(struct gendisk *disk) | 585 | void device_add_disk(struct device *parent, struct gendisk *disk) |
585 | { | 586 | { |
586 | struct backing_dev_info *bdi; | 587 | struct backing_dev_info *bdi; |
587 | dev_t devt; | 588 | dev_t devt; |
@@ -617,7 +618,11 @@ void add_disk(struct gendisk *disk) | |||
617 | 618 | ||
618 | blk_register_region(disk_devt(disk), disk->minors, NULL, | 619 | blk_register_region(disk_devt(disk), disk->minors, NULL, |
619 | exact_match, exact_lock, disk); | 620 | exact_match, exact_lock, disk); |
620 | register_disk(disk); | 621 | |
622 | /* temporary while we convert usages to use disk_to_dev(disk)->parent */ | ||
623 | disk->driverfs_dev = parent; | ||
624 | |||
625 | register_disk(parent, disk); | ||
621 | blk_register_queue(disk); | 626 | blk_register_queue(disk); |
622 | 627 | ||
623 | /* | 628 | /* |
@@ -633,7 +638,7 @@ void add_disk(struct gendisk *disk) | |||
633 | disk_add_events(disk); | 638 | disk_add_events(disk); |
634 | blk_integrity_add(disk); | 639 | blk_integrity_add(disk); |
635 | } | 640 | } |
636 | EXPORT_SYMBOL(add_disk); | 641 | EXPORT_SYMBOL(device_add_disk); |
637 | 642 | ||
638 | void del_gendisk(struct gendisk *disk) | 643 | void del_gendisk(struct gendisk *disk) |
639 | { | 644 | { |