There seems to be a
mismatch in udev and in libsysfs as to what to expect if the mnt point
has a slash on the end or not. If I use the included patch, it breaks
something in udev. If I patch sysfs_get_mnt_path I break udev as well
because what you're expecting. I need to sit down and go through
the library and creaate a rule as to trailing slashes. Adding the env
brought this to light.
{
struct sysfs_link *devlink = NULL;
unsigned char devpath[SYSFS_PATH_MAX];
+ unsigned char *s = NULL;
int result = 0;
if (busname == NULL || bus_id == NULL)
if (sysfs_get_mnt_path(devpath, SYSFS_PATH_MAX) != 0)
return -1;
+ s = &devpath[strlen(devpath)-1];
+ if (strncmp(s, "/", 1) == 0)
+ *s = '\0';
strcat(devpath, SYSFS_BUS_DIR);
strcat(devpath, "/");
strcat(devpath, busname);