OVS_CHECK_STRTOK_R
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec, struct stat.st_mtimensec],
[], [], [[#include <sys/stat.h>]])
-AC_CHECK_FUNCS([mlockall strnlen strsignal getloadavg statvfs setmntent])
+AC_CHECK_FUNCS([mlockall strnlen strsignal getloadavg statvfs getmntent_r])
AC_CHECK_HEADERS([mntent.h sys/statvfs.h linux/types.h linux/if_ether.h])
OVS_CHECK_PKIDIR
static void
get_filesys_stats(struct smap *stats OVS_UNUSED)
{
-#if HAVE_SETMNTENT && HAVE_STATVFS
+#if HAVE_GETMNTENT_R && HAVE_STATVFS
static const char file_name[] = "/etc/mtab";
+ struct mntent mntent;
struct mntent *me;
+ char buf[4096];
FILE *stream;
struct ds s;
}
ds_init(&s);
- while ((me = getmntent(stream)) != NULL) {
+ while ((me = getmntent_r(stream, &mntent, buf, sizeof buf)) != NULL) {
unsigned long long int total, free;
struct statvfs vfs;
char *p;
smap_add(stats, "file_systems", ds_cstr(&s));
}
ds_destroy(&s);
-#endif /* HAVE_SETMNTENT && HAVE_STATVFS */
+#endif /* HAVE_GETMNTENT_R && HAVE_STATVFS */
}
\f
#define SYSTEM_STATS_INTERVAL (5 * 1000) /* In milliseconds. */