Re: /sys/block [was: [PATCH 007 of 7] md: Get name for block device in sysfs]

Michael Tokarev
2007-12-17T08:33:03Z

Kay Sievers wrote:
> On Mon, 2007-12-17 at 08:29 +0300, Michael Tokarev wrote:
[]
>> How to distinguish char devices from block devices in sysfs?
>> Is the only way to read a symlink `subsystem' in the device
>> directory?
>
> By its subsystem value (block), from the symlink, from the environment,
> or from $1.

Environment and $1 comes as arguments for hotplug helper, not
when scanning /sys/.

>> For now, I've a shell code (used heavily in numerous places),
>> which looks like this:
>>
>> function makedev() {
>> ...
>> case $DEVPATH in
>> /block/*) TYPE=b ;;
>> *) TYPE=c ;;
>> esac
>> ...
>> mknod /dev/$DEV $TYPE $MAJOR $MINOR
>> }
>>
>> The only external process invocation in there is mknod, all
>> the rest is done using pure shell constructs. Is it really
>> necessary to spawn another process just to read a symlink
>> now? It will be almost 2 times slower....
>
> No need.

It seems there IS a need now ;)

Thanks for the clarification.

/mjt