chiark / gitweb /
[PATCH] quick fix for libsysfs bus
authordsteklof@us.ibm.com <dsteklof@us.ibm.com>
Thu, 27 Nov 2003 01:31:59 +0000 (17:31 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:13:04 +0000 (21:13 -0700)
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.

libsysfs/sysfs_device.c

index fbd046f..2a5353e 100644 (file)
@@ -28,6 +28,7 @@ static int confirm_device_bus(struct sysfs_device *dev,
 {
         struct sysfs_link *devlink = NULL;
         unsigned char devpath[SYSFS_PATH_MAX];
+       unsigned char *s = NULL;
        int result = 0;
 
         if (busname == NULL || bus_id == NULL)
@@ -36,6 +37,9 @@ static int confirm_device_bus(struct sysfs_device *dev,
         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);