mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
block: genhd: Add disk/partition specific uevent callbacks for partition info
For disk devices, a new uevent parameter 'NPARTS' specifies the number of partitions detected by the kernel. Partition devices get 'PARTN' which specifies the partitions index in the table. Signed-off-by: San Mehat <san@google.com>
This commit is contained in:
@@ -1105,6 +1105,22 @@ static void disk_release(struct device *dev)
|
||||
free_part_info(&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",
|
||||
};
|
||||
@@ -1123,6 +1139,7 @@ static struct device_type disk_type = {
|
||||
.groups = disk_attr_groups,
|
||||
.release = disk_release,
|
||||
.devnode = block_devnode,
|
||||
.uevent = disk_uevent,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
@@ -366,10 +366,20 @@ static void part_release(struct device *dev)
|
||||
kfree(p);
|
||||
}
|
||||
|
||||
static int part_uevent(struct device *dev, struct kobj_uvent_env *env)
|
||||
{
|
||||
struct gendisk *disk = dev_to_disk(dev);
|
||||
struct hd_struct *part = dev_to_part(dev);
|
||||
|
||||
add_uevent_var(env, "PARTN=%u", part->partno);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct device_type part_type = {
|
||||
.name = "partition",
|
||||
.groups = part_attr_groups,
|
||||
.release = part_release,
|
||||
.uevent = part_uevent,
|
||||
};
|
||||
|
||||
static void delete_partition_rcu_cb(struct rcu_head *head)
|
||||
|
||||
Reference in New Issue
Block a user