On Tue, May 19, 2015 at 02:35:54PM +0200, Stanislav Brabec wrote: > Karel Zak wrote: > >On Mon, May 18, 2015 at 09:31:34PM +0200, Stanislav Brabec wrote: > >>linux/drivers/base/core.c: device_get_devnode() defines a translation of > >>'!' in sysfs nodes to '/' in /dev nodes. The same translation has to be > >>done to properly support device nodes with slash (e. g. device nodes of > >>cciss driver and several other drivers). > > > >Strange feature. > > It was probably introduced to support drivers that already used /dev > sub-directories in time of introduction /sys. > > >>+ /* replace '!' in the name with '/', see > >>+ * linux/drivers/base/core.c: device_get_devnode() */ > >>+ while ((s = strchr(name, '!'))) > >>+ s[0] = '/'; > > > > > > What about to add small inline function sysfs_fix_devname() to > > include/sysfs.h ? > > Yes, it makes sense. > > Do you have an idea how to locate all parts of code that make assumptions > basename (sysfs_block_path) == basename (dev_path). I hope we use lib/sysfs.c code always when possible. It should be possible to detect all /sys code by git grep _PATH_SYS_ so disk-utils/partx.c lib/loopdev.c lib/sysfs.c libblkid/src/devname.c misc-utils/lsblk.c the rest is irrelevant lscpu.. Karel -- Karel Zak <kzak@xxxxxxxxxx> http://karelzak.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html