From: Miklos Szeredi Uniformly use MAJOR:MINOR in /sys/class/bdi/ for both block devices and non-block device backed filesystems: FUSE and NFS. Add symlink for block devices: /sys/block//bdi -> /sys/class/bdi/ Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton --- block/genhd.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff -puN block/genhd.c~mm-bdi-export-bdi-attributes-in-sysfs-fix-2 block/genhd.c --- a/block/genhd.c~mm-bdi-export-bdi-attributes-in-sysfs-fix-2 +++ a/block/genhd.c @@ -182,13 +182,17 @@ static int exact_lock(dev_t devt, void * */ void add_disk(struct gendisk *disk) { + struct backing_dev_info *bdi; + disk->flags |= GENHD_FL_UP; blk_register_region(MKDEV(disk->major, disk->first_minor), disk->minors, NULL, exact_match, exact_lock, disk); register_disk(disk); blk_register_queue(disk); - bdi_register(&disk->queue->backing_dev_info, NULL, - "blk-%s", disk->disk_name); + + bdi = &disk->queue->backing_dev_info; + bdi_register_dev(bdi, MKDEV(disk->major, disk->first_minor)); + sysfs_create_link(&disk->dev.kobj, &bdi->dev->kobj, "bdi"); } EXPORT_SYMBOL(add_disk); @@ -196,8 +200,9 @@ EXPORT_SYMBOL(del_gendisk); /* in partit void unlink_gendisk(struct gendisk *disk) { - blk_unregister_queue(disk); + sysfs_remove_link(&disk->dev.kobj, "bdi"); bdi_unregister(&disk->queue->backing_dev_info); + blk_unregister_queue(disk); blk_unregister_region(MKDEV(disk->major, disk->first_minor), disk->minors); } _