[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <x494mh4qnwc.fsf@segfault.boston.devel.redhat.com>
Date: Mon, 02 Nov 2015 13:03:47 -0500
From: Jeff Moyer <jmoyer@...hat.com>
To: John Stultz <john.stultz@...aro.org>
Cc: linux-kernel@...r.kernel.org, San Mehat <san@...gle.com>,
Jens Axboe <axboe@...nel.dk>,
Rom Lemarchand <romlem@...gle.com>,
Android Kernel Team <kernel-team@...roid.com>,
Dima Zavin <dima@...roid.com>, harald@...hat.com,
kay@...hat.com
Subject: Re: [PATCH] block: genhd: Add disk/partition specific uevent callbacks for partition info
Hi John,
John Stultz <john.stultz@...aro.org> writes:
> From: San Mehat <san@...gle.com>
>
> This patch has been carried in the Android tree for quite some
> time and is one of the few patches required to get a mainline
> kernel up and running with an exsiting Android userspace. So I
> wanted to submit it for review and consideration if it should
> be merged.
>
> 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, and 'PARTNAME', which
> specifies PARTNAME specifices the partition name of a partition device
>
> Android's userspace uses this for creating device node links from the
> partition name and number: ie:
> /dev/block/platform/soc/by-name/system
> or
> /dev/block/platform/soc/by-num/p1
>
> One can see its usage here:
> https://android.googlesource.com/platform/system/core/+/master/init/devices.cpp#355
> and
> https://android.googlesource.com/platform/system/core/+/master/init/devices.cpp#494
Those links don't appear to use the NPARTS uevent parameter, unless I
missed it.
> Thoughts and feedback would be greatly appreciated!
I can't say I have strong feelings one way or the other. I've CC'd Kay
and Harald, hoping they might have an opinion.
Cheers,
Jeff
>
> Cc: Jens Axboe <axboe@...nel.dk>
> Cc: Rom Lemarchand <romlem@...gle.com>
> Cc: Android Kernel Team <kernel-team@...roid.com>
> Signed-off-by: Dima Zavin <dima@...roid.com>
> [jstultz: Added more context to commit message & whitespace fix]
> Signed-off-by: John Stultz <john.stultz@...aro.org>
> ---
> block/genhd.c | 17 +++++++++++++++++
> block/partition-generic.c | 11 +++++++++++
> 2 files changed, 28 insertions(+)
>
> diff --git a/block/genhd.c b/block/genhd.c
> index 0c706f3..248139e 100644
> --- a/block/genhd.c
> +++ b/block/genhd.c
> @@ -1115,6 +1115,22 @@ static void disk_release(struct device *dev)
> blk_put_queue(disk->queue);
> 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",
> };
> @@ -1134,6 +1150,7 @@ static struct device_type disk_type = {
> .groups = disk_attr_groups,
> .release = disk_release,
> .devnode = block_devnode,
> + .uevent = disk_uevent,
> };
>
> #ifdef CONFIG_PROC_FS
> diff --git a/block/partition-generic.c b/block/partition-generic.c
> index e771113..e5d91c9 100644
> --- a/block/partition-generic.c
> +++ b/block/partition-generic.c
> @@ -216,10 +216,21 @@ static void part_release(struct device *dev)
> 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)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists