changeset 4564:c192e46273b7

[__GLIBC__]: GNU libc's statvfs stats each mount point in /proc/mounts until it finds one with matching device number. This is unnecessary when the FILE argument *is* a mount point. No stat call is necessary in that case. So, disable the statvfs-testing code on systems with GNU libc. Reported by Andrei Gaponenko via Tim Waugh as RedHat bug# 84846.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 16 Aug 2003 08:28:42 +0000
parents f6765c0d3662
children 57ddc0368e92
files m4/fsusage.m4
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/m4/fsusage.m4
+++ b/m4/fsusage.m4
@@ -1,4 +1,4 @@
-#serial 10
+#serial 11
 
 # From fileutils/configure.in
 
@@ -35,6 +35,11 @@
   # SVR4
   AC_CACHE_CHECK([for statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
 		 [AC_TRY_LINK([#include <sys/types.h>
+#ifdef __GLIBC__
+Do not use statvfs on systems with GNU libc, because that function stats
+all preceding entries in /proc/mounts, and that makes df hang if even
+one of the corresponding file systems is hard-mounted, but not available.
+#endif
 #include <sys/statvfs.h>],
 			      [struct statvfs fsd; statvfs (0, &fsd);],
 			      fu_cv_sys_stat_statvfs=yes,