Message ID | 20160630015953.6888-3-famz@redhat.com |
---|---|
State | Not Applicable |
Headers | show |
Hi, [auto build test WARNING on block/for-next] [also build test WARNING on v4.7-rc5] [cannot apply to next-20160629] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Fam-Zheng/gendisk-Generate-uevent-after-attribute-available/20160630-100720 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next reproduce: make htmldocs All warnings (new ones prefixed by >>): lib/crc32.c:148: warning: No description found for parameter 'tab)[256]' lib/crc32.c:148: warning: Excess function parameter 'tab' description in 'crc32_le_generic' lib/crc32.c:293: warning: No description found for parameter 'tab)[256]' lib/crc32.c:293: warning: Excess function parameter 'tab' description in 'crc32_be_generic' lib/crc32.c:1: warning: no structured comments found mm/memory.c:2881: warning: No description found for parameter 'old' >> block/genhd.c:575: warning: No description found for parameter 'disk' >> block/genhd.c:575: warning: No description found for parameter 'disk' vim +/disk +575 block/genhd.c 559 blkdev_put(bdev, FMODE_READ); 560 561 exit: 562 /* announce disk after possible partitions are created */ 563 dev_set_uevent_suppress(ddev, 0); 564 if (gen_uevent) 565 disk_gen_uevents(disk); 566 } 567 568 /** 569 * disk_gen_uevents 570 * @disk - the disk to generate uevent 571 * 572 * Generate KOBJ_ADD uevents on the disk and partitions. 573 */ 574 void disk_gen_uevents(struct gendisk *disk) > 575 { 576 struct device *ddev = disk_to_dev(disk); 577 struct disk_part_iter piter; 578 struct hd_struct *part; 579 580 kobject_uevent(&ddev->kobj, KOBJ_ADD); 581 582 /* announce possible partitions */ 583 disk_part_iter_init(&piter, disk, 0); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/block/genhd.c b/block/genhd.c index 8e1bfa1..9b66953 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -506,12 +506,10 @@ static int exact_lock(dev_t devt, void *data) return 0; } -static void register_disk(struct gendisk *disk) +static void register_disk(struct gendisk *disk, bool gen_uevent) { struct device *ddev = disk_to_dev(disk); struct block_device *bdev; - struct disk_part_iter piter; - struct hd_struct *part; int err; ddev->parent = disk->driverfs_dev; @@ -563,6 +561,22 @@ static void register_disk(struct gendisk *disk) exit: /* announce disk after possible partitions are created */ dev_set_uevent_suppress(ddev, 0); + if (gen_uevent) + disk_gen_uevents(disk); +} + +/** + * disk_gen_uevents + * @disk - the disk to generate uevent + * + * Generate KOBJ_ADD uevents on the disk and partitions. + */ +void disk_gen_uevents(struct gendisk *disk) +{ + struct device *ddev = disk_to_dev(disk); + struct disk_part_iter piter; + struct hd_struct *part; + kobject_uevent(&ddev->kobj, KOBJ_ADD); /* announce possible partitions */ @@ -571,6 +585,7 @@ exit: kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD); disk_part_iter_exit(&piter); } +EXPORT_SYMBOL(disk_gen_uevents); /** * add_disk - add partitioning information to kernel list @@ -618,7 +633,7 @@ void add_disk(struct gendisk *disk, bool gen_uevent) blk_register_region(disk_devt(disk), disk->minors, NULL, exact_match, exact_lock, disk); - register_disk(disk); + register_disk(disk, gen_uevent); blk_register_queue(disk); /* diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 038be80..87ad9e5 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -416,6 +416,7 @@ extern void part_round_stats(int cpu, struct hd_struct *part); /* block/genhd.c */ extern void add_disk(struct gendisk *disk, bool gen_uevent); extern void del_gendisk(struct gendisk *gp); +extern void disk_gen_uevents(struct gendisk *disk); extern struct gendisk *get_gendisk(dev_t dev, int *partno); extern struct block_device *bdget_disk(struct gendisk *disk, int partno);
In add_disk(), don't send uevent to userspace when gen_uevent is true; also export the refactored function disk_gen_uevents for later use. Signed-off-by: Fam Zheng <famz@redhat.com> --- block/genhd.c | 23 +++++++++++++++++++---- include/linux/genhd.h | 1 + 2 files changed, 20 insertions(+), 4 deletions(-)