mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
Driver core: convert block from raw kobjects to core devices
This moves the block devices to /sys/class/block. It will create a flat list of all block devices, with the disks and partitions in one directory. For compatibility /sys/block is created and contains symlinks to the disks. /sys/class/block |-- sda -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda |-- sda1 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1 |-- sda10 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10 |-- sda5 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5 |-- sda6 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6 |-- sda7 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7 |-- sda8 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8 |-- sda9 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9 `-- sr0 -> ../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0 /sys/block/ |-- sda -> ../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda `-- sr0 -> ../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0 Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
09f82ea928
commit
edfaa7c365
13 changed files with 389 additions and 614 deletions
|
@ -738,9 +738,9 @@ EXPORT_SYMBOL(bd_release);
|
|||
static struct kobject *bdev_get_kobj(struct block_device *bdev)
|
||||
{
|
||||
if (bdev->bd_contains != bdev)
|
||||
return kobject_get(&bdev->bd_part->kobj);
|
||||
return kobject_get(&bdev->bd_part->dev.kobj);
|
||||
else
|
||||
return kobject_get(&bdev->bd_disk->kobj);
|
||||
return kobject_get(&bdev->bd_disk->dev.kobj);
|
||||
}
|
||||
|
||||
static struct kobject *bdev_get_holder(struct block_device *bdev)
|
||||
|
@ -1176,7 +1176,7 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part)
|
|||
ret = -ENXIO;
|
||||
goto out_first;
|
||||
}
|
||||
kobject_get(&p->kobj);
|
||||
kobject_get(&p->dev.kobj);
|
||||
bdev->bd_part = p;
|
||||
bd_set_size(bdev, (loff_t) p->nr_sects << 9);
|
||||
}
|
||||
|
@ -1299,7 +1299,7 @@ static int __blkdev_put(struct block_device *bdev, int for_part)
|
|||
module_put(owner);
|
||||
|
||||
if (bdev->bd_contains != bdev) {
|
||||
kobject_put(&bdev->bd_part->kobj);
|
||||
kobject_put(&bdev->bd_part->dev.kobj);
|
||||
bdev->bd_part = NULL;
|
||||
}
|
||||
bdev->bd_disk = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue