Package: libc6 Version: 2.13-37 Severity: normal Running statvfs() my machine still results in stat() being called, and from what I can tell, it's being called _before_ __statvfs_getflags() is called. I have not yet determined where stat() is called, but strace on my C program (see below) confirms stat() is called after statfs(), but before the fprintf() I added in sysdeps/unix/sysv/linux/internal_statvfs.c:
/* * I added the following fprintf() in my local build and confirmed * ST_VALID (0x20) is set here by my 3.7.5 kernel: */ fprintf(stderr, "f_flags: 0x%lx\n", fsbuf->f_flags); #ifndef __ASSUME_STATFS_F_FLAGS if ((fsbuf->f_flags & ST_VALID) == 0) /* Determining the flags is tricky. We have to read /proc/mounts or the /etc/mtab file and search for the entry which matches the given file. The way we can test for matching filesystem is using the device number. */ buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st); else #endif buf->f_flag = fsbuf->f_flags ^ ST_VALID; Here is my trivial C program I straced to confirm stat() being called after statfs(): -------------------------------------------- /* gcc -o statvfs -Wall statvfs.c */ #include <sys/statvfs.h> int main(void) { struct statvfs svf; statvfs("/mnt", &svf); return 0; } -------------------------------------------- I do not expect stat() to be called with statvfs(), since ST_VALID helps avoid this expensive check. stat() also has detrimental effects on unreachable/slow network mounts. -- System Information: Debian Release: 7.0 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 3.7.5 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libc6 depends on: ii libc-bin 2.13-37 ii libgcc1 1:4.7.2-5 libc6 recommends no packages. Versions of packages libc6 suggests: ii debconf [debconf-2.0] 1.5.49 ii glibc-doc 2.13-37 ii locales 2.13-37 -- debconf information excluded -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org