`df /some/mount-point' no longer hangs when an unrelated hard-mount
authorJim Meyering <jim@meyering.net>
Tue, 4 Mar 2003 09:16:35 +0000 (09:16 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 4 Mar 2003 09:16:35 +0000 (09:16 +0000)
is unavailable

[__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.

m4/fsusage.m4

index 451a5cc8cc4d5ca6c4e71f35496af3a6bc2f7605..ad63154ac409e5431e1410182999f3d65345bd28 100644 (file)
@@ -1,4 +1,4 @@
-#serial 8
+#serial 9
 
 # From fileutils/configure.in
 
@@ -24,6 +24,11 @@ if test $ac_fsusage_space = no; then
   # 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,