linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Moyer <jmoyer@redhat.com>
To: John Stultz <john.stultz@linaro.org>
Cc: linux-kernel@vger.kernel.org, San Mehat <san@google.com>,
	Jens Axboe <axboe@kernel.dk>, Rom Lemarchand <romlem@google.com>,
	Android Kernel Team <kernel-team@android.com>,
	Dima Zavin <dima@android.com>,
	harald@redhat.com, kay@redhat.com
Subject: Re: [PATCH] block: genhd: Add disk/partition specific uevent callbacks for partition info
Date: Mon, 02 Nov 2015 13:03:47 -0500	[thread overview]
Message-ID: <x494mh4qnwc.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <1445534852-7456-1-git-send-email-john.stultz@linaro.org> (John Stultz's message of "Thu, 22 Oct 2015 10:27:32 -0700")

Hi John,

John Stultz <john.stultz@linaro.org> writes:

> From: San Mehat <san@google.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@kernel.dk>
> Cc: Rom Lemarchand <romlem@google.com>
> Cc: Android Kernel Team <kernel-team@android.com>
> Signed-off-by: Dima Zavin <dima@android.com>
> [jstultz: Added more context to commit message & whitespace fix]
> Signed-off-by: John Stultz <john.stultz@linaro.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)

  parent reply	other threads:[~2015-11-02 18:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-22 17:27 [PATCH] block: genhd: Add disk/partition specific uevent callbacks for partition info John Stultz
2015-10-31  0:09 ` John Stultz
2015-11-02 18:03 ` Jeff Moyer [this message]
2015-11-02 18:34   ` John Stultz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=x494mh4qnwc.fsf@segfault.boston.devel.redhat.com \
    --to=jmoyer@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=dima@android.com \
    --cc=harald@redhat.com \
    --cc=john.stultz@linaro.org \
    --cc=kay@redhat.com \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=romlem@google.com \
    --cc=san@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).