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

From: Michael Tokarev
Date: Mon Dec 17 2007 - 03:33:11 EST


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
--
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/