diff -up libhugetlbfs-2.16/hugeadm.c.orig libhugetlbfs-2.16/hugeadm.c
--- libhugetlbfs-2.16/hugeadm.c.orig 2014-07-29 18:36:06.572447296 +0200
+++ libhugetlbfs-2.16/hugeadm.c 2014-07-29 18:36:40.877511388 +0200
@@ -517,6 +517,8 @@ int mount_dir(char *path, char *options,
struct mntent entry;
FILE *mounts;
struct mount_list *list, *previous;
+ char dummy;
+ int useMtab;
list = collect_active_mounts(NULL);
@@ -552,6 +554,15 @@ int mount_dir(char *path, char *options,
return 1;
}
+ /* Check if mtab is a symlink */
+ useMtab = (readlink(MOUNTED, &dummy, 1) < 0);
+ if (!useMtab) {
+ /* No need updating mtab */
+ return 0;
+ }
+
+
+
mounts = setmntent(MOUNTED, "a+");
if (mounts) {
entry.mnt_fsname = FS_NAME;