about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs.c1
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c3
-rw-r--r--sysdeps/unix/sysv/linux/statvfs.c1
4 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7cd3e9c17f..aaa28bbd21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 
 	* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Avoid
 	locking when using mount tab file.
+	* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
+	* sysdeps/unix/sysv/linux/statvfs.c: Include <stdio_ext.h>.
+	* sysdeps/unix/sysv/linux/fstatvfs.c: Likewise.
 
 	* elf/dl-init.c (_dl_init): Fix test of the size of the
 	preinit_array section.
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index 4452e50f81..0bfce16309 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <mntent.h>
 #include <paths.h>
+#include <stdio_ext.h>
 #include <string.h>
 #include <sys/mount.h>
 #include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index ed9dbaaa0e..744c8d9fd6 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -64,6 +64,9 @@
 	{
 	  char tmpbuf[1024];
 
+	  /* No locking needed.  */
+	  (void) __fsetlocking (mtab, FSETLOCKING_BYCALLER);
+
 	  while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
 	    {
 	      struct stat64 fsst;
diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c
index 9992d7757f..5eef62c5f6 100644
--- a/sysdeps/unix/sysv/linux/statvfs.c
+++ b/sysdeps/unix/sysv/linux/statvfs.c
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <mntent.h>
 #include <paths.h>
+#include <stdio_ext.h>
 #include <string.h>
 #include <sys/mount.h>
 #include <sys/stat.h>