+++ /dev/null
-#
-# Copyright (C) 2006-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=sysfsutils
-PKG_VERSION:=2.1.0
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/linux-diag
-PKG_MD5SUM:=14e7dcd0436d2f49aa403f67e1ef7ddc
-PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
-
-PKG_FIXUP:=autoreconf
-
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libsysfs
- SECTION:=libs
- CATEGORY:=Libraries
- SUBMENU:=Filesystem
- TITLE:=Sysfs library
- URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
-endef
-
-define Package/sysfsutils
- SECTION:=utils
- CATEGORY:=Utilities
- SUBMENU:=Filesystem
- DEPENDS:=+libsysfs
- TITLE:=System Utilities Based on Sysfs
- URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
-endef
-
-define Package/libsysfs/description
-The library's purpose is to provide a consistant and stable interface for
-querying system device information exposed through sysfs.
-endef
-
-define Package/sysfsutils/description
-A utility built upon libsysfs that lists devices by bus, class, and topology.
-endef
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/include/sysfs $(1)/usr/include/
-
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.{a,so*,la} $(1)/usr/lib/
-endef
-
-define Package/libsysfs/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.so* $(1)/usr/lib/
-endef
-
-define Package/sysfsutils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/systool $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,libsysfs))
-$(eval $(call BuildPackage,sysfsutils))
+++ /dev/null
---- a/lib/sysfs_utils.c
-+++ b/lib/sysfs_utils.c
-@@ -22,6 +22,7 @@
- */
- #include "libsysfs.h"
- #include "sysfs.h"
-+#include <mntent.h>
-
- /**
- * sysfs_remove_trailing_slash: Removes any trailing '/' in the given path
-@@ -53,6 +54,9 @@ int sysfs_get_mnt_path(char *mnt_path, s
- {
- static char sysfs_path[SYSFS_PATH_MAX] = "";
- const char *sysfs_path_env;
-+ FILE *mnt;
-+ struct mntent *mntent;
-+ int ret;
-
- if (len == 0 || mnt_path == NULL)
- return -1;
-@@ -64,12 +68,31 @@ int sysfs_get_mnt_path(char *mnt_path, s
- if (sysfs_path_env != NULL) {
- safestrcpymax(mnt_path, sysfs_path_env, len);
- sysfs_remove_trailing_slash(mnt_path);
-- return 0;
-+ } else {
-+ safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);
- }
-- safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);
- }
-
-- return 0;
-+ /* check that mount point is indeed mounted */
-+ ret = -1;
-+ if ((mnt = setmntent(SYSFS_PROC_MNTS, "r")) == NULL) {
-+ dprintf("Error getting mount information\n");
-+ return -1;
-+ }
-+ while ((mntent = getmntent(mnt)) != NULL) {
-+ if (strcmp(mntent->mnt_type, SYSFS_FSTYPE_NAME) == 0 &&
-+ strcmp(mntent->mnt_dir, mnt_path) == 0) {
-+ ret = 0;
-+ break;
-+ }
-+ }
-+
-+ endmntent(mnt);
-+
-+ if (ret < 0)
-+ errno = ENOENT;
-+
-+ return ret;
- }
-
- /**