X-Git-Url: https://git.stricted.de/?a=blobdiff_plain;f=block%2Fpartition-generic.c;h=a2062d6109d9f6a327d081bf1573e16a7cee913d;hb=a03fb26067247e8a77183d596cb62ad698290783;hp=789cdea05893bb8e3420ede5d1aa65e7af408e1b;hpb=150a8dcf109f68f322bf112c7604f2d950303f00;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git diff --git a/block/partition-generic.c b/block/partition-generic.c index 789cdea05893..a2062d6109d9 100644 --- a/block/partition-generic.c +++ b/block/partition-generic.c @@ -211,15 +211,27 @@ static const struct attribute_group *part_attr_groups[] = { static void part_release(struct device *dev) { struct hd_struct *p = dev_to_part(dev); + blk_free_devt(dev->devt); free_part_stats(p); free_part_info(p); kfree(p); } +static int part_uevent(struct device *dev, struct kobj_uevent_env *env) +{ + struct hd_struct *part = dev_to_part(dev); + + add_uevent_var(env, "PARTN=%u", part->partno); + if (part->info && part->info->volname[0]) + add_uevent_var(env, "PARTNAME=%s", part->info->volname); + 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) @@ -253,7 +265,6 @@ void delete_partition(struct gendisk *disk, int partno) rcu_assign_pointer(ptbl->last_lookup, NULL); kobject_put(part->holder_dir); device_del(part_to_dev(part)); - blk_free_devt(part_devt(part)); hd_struct_put(part); } @@ -512,6 +523,7 @@ rescan: if (state->parts[p].has_info) info = &state->parts[p].info; + printk("add_partition==[%s:p%d]==start = %llu,size = %llu\n", disk->disk_name, p, (unsigned long long)from, (unsigned long long)size); part = add_partition(disk, p, from, size, state->parts[p].flags, &state->parts[p].info);