diff mbox

[infiniband-diags,1/2] rdma-ndd: never use udev_get_sys_path()

Message ID 1435241522-7721-2-git-send-email-mschmidt@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Ira Weiny
Headers show

Commit Message

Michal Schmidt June 25, 2015, 2:12 p.m. UTC
The function was deprecated and later dropped by udev entirely
because it was pointless.
Quoting kernel's Documentation/sysfs-rules.txt:
  sysfs is always at /sys
  Parsing /proc/mounts is a waste of time. Other mount points are
  a system configuration bug you should not try to solve. [...]

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
---
 configure.ac   |  1 -
 src/rdma-ndd.c | 19 +++++--------------
 2 files changed, 5 insertions(+), 15 deletions(-)

Comments

Ira Weiny July 14, 2015, 3:44 p.m. UTC | #1
On Thu, Jun 25, 2015 at 04:12:01PM +0200, Michal Schmidt wrote:
> The function was deprecated and later dropped by udev entirely
> because it was pointless.
> Quoting kernel's Documentation/sysfs-rules.txt:
>   sysfs is always at /sys
>   Parsing /proc/mounts is a waste of time. Other mount points are
>   a system configuration bug you should not try to solve. [...]
> 
> Signed-off-by: Michal Schmidt <mschmidt@redhat.com>

Thanks applied,
Ira

> ---
>  configure.ac   |  1 -
>  src/rdma-ndd.c | 19 +++++--------------
>  2 files changed, 5 insertions(+), 15 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index b9b7ad84ee..ece1d530a7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -214,7 +214,6 @@ if test x$rdmandd = xyes; then
>      AC_CHECK_HEADER(libudev.h, with_udev="yes", with_udev="no")
>      AC_CHECK_LIB(udev, udev_monitor_ref, [], AC_MSG_ERROR(libudev is required for rdma-ndd...))
>      AC_CONFIG_FILES([doc/man/rdma-ndd.8 etc/rdma-ndd.init])
> -    AC_CHECK_FUNCS_ONCE(udev_get_sys_path)
>  fi
>  
>  dnl Generate doc/man/*.in files if possible
> diff --git a/src/rdma-ndd.c b/src/rdma-ndd.c
> index 194c2cd865..d40e7567db 100644
> --- a/src/rdma-ndd.c
> +++ b/src/rdma-ndd.c
> @@ -58,9 +58,7 @@ struct udev_monitor *mon;
>  #include "ibdiag_common.h"
>  
>  #define SYS_HOSTNAME "/proc/sys/kernel/hostname"
> -#define DEF_SYS_DIR "/sys"
> -char *sys_dir = DEF_SYS_DIR;
> -#define SYS_INFINIBAND "class/infiniband"
> +#define SYS_INFINIBAND "/sys/class/infiniband"
>  #define DEFAULT_RETRY_RATE 60
>  #define DEFAULT_RETRY_COUNT 0
>  #define DEFAULT_ND_FORMAT "%h %d"
> @@ -122,8 +120,8 @@ static int update_node_desc(const char *device, const char *hostname, int force)
>  	char nd_file[PATH_MAX];
>  	FILE *f;
>  
> -	snprintf(nd_file, sizeof(nd_file), "%s/%s/%s/node_desc",
> -			sys_dir, SYS_INFINIBAND, device);
> +	snprintf(nd_file, sizeof(nd_file), SYS_INFINIBAND "/%s/node_desc",
> +			device);
>  	nd_file[sizeof(nd_file)-1] = '\0';
>  
>  	f = fopen(nd_file, "r+");
> @@ -160,14 +158,10 @@ static int set_rdma_node_desc(const char *hostname, int force)
>  {
>  	DIR *class_dir;
>  	struct dirent *dent;
> -	char dev_dir[PATH_MAX];
>  
> -	snprintf(dev_dir, sizeof(dev_dir), "%s/%s", sys_dir, SYS_INFINIBAND);
> -	dev_dir[sizeof(dev_dir)-1] = '\0';
> -
> -	class_dir = opendir(dev_dir);
> +	class_dir = opendir(SYS_INFINIBAND);
>  	if (!class_dir) {
> -		syslog(LOG_INFO, "Failed to open %s", dev_dir);
> +		syslog(LOG_INFO, "Failed to open " SYS_INFINIBAND);
>  		return -ENOSYS;
>  	}
>  
> @@ -261,9 +255,6 @@ static void setup_udev(void)
>  
>  	udev_set_log_fn(udev, udev_log_fn);
>  	udev_set_log_priority(udev, LOG_INFO);
> -#if HAVE_UDEV_GET_SYS_PATH
> -	sys_dir = (char *)udev_get_sys_path(udev);
> -#endif
>  }
>  
>  static int get_udev_fd(void)
> -- 
> 2.4.3
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/configure.ac b/configure.ac
index b9b7ad84ee..ece1d530a7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -214,7 +214,6 @@  if test x$rdmandd = xyes; then
     AC_CHECK_HEADER(libudev.h, with_udev="yes", with_udev="no")
     AC_CHECK_LIB(udev, udev_monitor_ref, [], AC_MSG_ERROR(libudev is required for rdma-ndd...))
     AC_CONFIG_FILES([doc/man/rdma-ndd.8 etc/rdma-ndd.init])
-    AC_CHECK_FUNCS_ONCE(udev_get_sys_path)
 fi
 
 dnl Generate doc/man/*.in files if possible
diff --git a/src/rdma-ndd.c b/src/rdma-ndd.c
index 194c2cd865..d40e7567db 100644
--- a/src/rdma-ndd.c
+++ b/src/rdma-ndd.c
@@ -58,9 +58,7 @@  struct udev_monitor *mon;
 #include "ibdiag_common.h"
 
 #define SYS_HOSTNAME "/proc/sys/kernel/hostname"
-#define DEF_SYS_DIR "/sys"
-char *sys_dir = DEF_SYS_DIR;
-#define SYS_INFINIBAND "class/infiniband"
+#define SYS_INFINIBAND "/sys/class/infiniband"
 #define DEFAULT_RETRY_RATE 60
 #define DEFAULT_RETRY_COUNT 0
 #define DEFAULT_ND_FORMAT "%h %d"
@@ -122,8 +120,8 @@  static int update_node_desc(const char *device, const char *hostname, int force)
 	char nd_file[PATH_MAX];
 	FILE *f;
 
-	snprintf(nd_file, sizeof(nd_file), "%s/%s/%s/node_desc",
-			sys_dir, SYS_INFINIBAND, device);
+	snprintf(nd_file, sizeof(nd_file), SYS_INFINIBAND "/%s/node_desc",
+			device);
 	nd_file[sizeof(nd_file)-1] = '\0';
 
 	f = fopen(nd_file, "r+");
@@ -160,14 +158,10 @@  static int set_rdma_node_desc(const char *hostname, int force)
 {
 	DIR *class_dir;
 	struct dirent *dent;
-	char dev_dir[PATH_MAX];
 
-	snprintf(dev_dir, sizeof(dev_dir), "%s/%s", sys_dir, SYS_INFINIBAND);
-	dev_dir[sizeof(dev_dir)-1] = '\0';
-
-	class_dir = opendir(dev_dir);
+	class_dir = opendir(SYS_INFINIBAND);
 	if (!class_dir) {
-		syslog(LOG_INFO, "Failed to open %s", dev_dir);
+		syslog(LOG_INFO, "Failed to open " SYS_INFINIBAND);
 		return -ENOSYS;
 	}
 
@@ -261,9 +255,6 @@  static void setup_udev(void)
 
 	udev_set_log_fn(udev, udev_log_fn);
 	udev_set_log_priority(udev, LOG_INFO);
-#if HAVE_UDEV_GET_SYS_PATH
-	sys_dir = (char *)udev_get_sys_path(udev);
-#endif
 }
 
 static int get_udev_fd(void)