Re: sysfs question: how to map major:minor to name under /sys

From: Neil Brown
Date: Thu Dec 15 2005 - 22:35:31 EST


On Thursday December 15, greg@xxxxxxxxx wrote:
> On Thu, Dec 15, 2005 at 02:14:06PM +1100, Neil Brown wrote:
> >
> > Hi,
> > I have a question about sysfs related usage.
> >
> > Suppose I have a major:minor number for a block device - maybe from
> > fstat of a filedescriptor I was given, or stat of a name in /dev.
> > How do I find the directory in /sys/block that contains relevant
> > information?
> >
> > It seems to me that there is no direct way, and maybe there should
> > be. (I can do a find of 'dev' file and compare, which is fine in a
> > one-off shell script, but sub-optimal in general).
>
> So you want this info from userspace, not from within the kernel,
> right?

Right.

>
> > The most obvious solution would be to have a directory somewhere full
> > of symlinks:
> > /sys/block_dev/8:0 -> ../block/sda
> > or whatever.
> > Is this reasonable? Should I try it?
>
> It seems a bit md specific to add a lot of kernel code for something
> that can be solved with a userspace shell script :)

I don't see it as md specific.
Suppose I want to change the IO scheduler under the filesystem /foo.
I look that up in mtab and find it is mounted on /dev/blah.
To find the corresponding /sys/block entry I have to search. That's
fine if I only have a few block devices. But I keep hearing storing
of people with thousands. Having to search just feels clumsy.

>
> But if you want to try it, use a class, and a class_device for this, not
> raw kobjects. It should be a bit easier that way.

Well, maybe it'll be a good excuse to learn more about 'class' and
'class_device' anyway.
Thanks,
NeilBrown
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/