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

ira.weiny
2015-07-14T15:44:12Z

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-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

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
>