disk->major = MAJOR(devt);
disk->first_minor = MINOR(devt);
- /* Register BDI before referencing it from bdev */
- bdi = &disk->queue->backing_dev_info;
- bdi_register_dev(bdi, disk_devt(disk));
-
blk_register_region(disk_devt(disk), disk->minors, NULL,
exact_match, exact_lock, disk);
register_disk(disk);
blk_register_queue(disk);
+ bdi = &disk->queue->backing_dev_info;
+ bdi_register_dev(bdi, disk_devt(disk));
retval = sysfs_create_link(&disk_to_dev(disk)->kobj, &bdi->dev->kobj,
"bdi");
WARN_ON(retval);
free_part_stats(&disk->part0);
kfree(disk);
}
-
-static int disk_uevent(struct device *dev, struct kobj_uevent_env *env)
-{
- struct gendisk *disk = dev_to_disk(dev);
- struct disk_part_iter piter;
- struct hd_struct *part;
- int cnt = 0;
-
- disk_part_iter_init(&piter, disk, 0);
- while((part = disk_part_iter_next(&piter)))
- cnt++;
- disk_part_iter_exit(&piter);
- add_uevent_var(env, "NPARTS=%u", cnt);
- return 0;
-}
-
struct class block_class = {
.name = "block",
};
.groups = disk_attr_groups,
.release = disk_release,
.devnode = block_devnode,
- .uevent = disk_uevent,
};
#ifdef CONFIG_PROC_FS