[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160205101846.6d385471.akpm@linux-foundation.org>
Date: Fri, 5 Feb 2016 10:18:46 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
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>,
Jeff Moyer <jmoyer@...hat.com>, harald@...hat.com,
Kees Cook <keescook@...omium.org>, Kay Sievers <kay@...y.org>,
Dima Zavin <dima@...roid.com>, Greg KH <greg@...ah.com>
Subject: Re: [RESEND x2][PATCH v2] block: partition: Add partition specific
uevent callbacks for partition info
On Fri, 5 Feb 2016 10:01:43 -0800 John Stultz <john.stultz@...aro.org> wrote:
> 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 partitions, add new uevent parameters '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
>
> ...
>
> --- 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)
Interestingly, this feature appears to already be documented in
Documentation/block/cmdline-partition.txt. I wonder how that happened.
Maybe we used to do this but it got taken away?
It seems bad that we don't document uevents in any organized fashion.
But the audience is very small and knows how to find kernel source code
so I guess it doesn't matter.
Anyway, please do check that the conveniently self-adding documentation
is accurate and complete.
Powered by blists - more mailing lists