--- sysfsutils-2.0.0-old/lib/sysfs_utils.c	2005-12-07 12:28:18.000000000 +0100
+++ sysfsutils-2.0.0/lib/sysfs_utils.c	2006-03-06 19:06:11.000000000 +0100
@@ -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 @@
 {
 	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 @@
 		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;
 }
 
 /**

