diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/fstatvfs.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/internal_statvfs.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/statvfs.c | 13 |
3 files changed, 12 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c index dbc4c552a5..b69bf77cb6 100644 --- a/sysdeps/unix/sysv/linux/fstatvfs.c +++ b/sysdeps/unix/sysv/linux/fstatvfs.c @@ -37,8 +37,9 @@ fstatvfs (int fd, struct statvfs *buf) if (__fstatfs (fd, &fsbuf) < 0) return -1; +#define STAT(st) fstat (fd, st) #include "internal_statvfs.c" - + /* We signal success if the statfs call succeeded. */ return 0; } diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c index 24765dcf5e..2ea380d5cd 100644 --- a/sysdeps/unix/sysv/linux/internal_statvfs.c +++ b/sysdeps/unix/sysv/linux/internal_statvfs.c @@ -40,7 +40,7 @@ file. The way we can test for matching filesystem is using the device number. */ buf->f_flag = 0; - if (fstat (fd, &st) >= 0) + if (STAT (&st) >= 0) { int save_errno = errno; struct mntent mntbuf; diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c index 9bbe6c2f99..7f85c9b726 100644 --- a/sysdeps/unix/sysv/linux/statvfs.c +++ b/sysdeps/unix/sysv/linux/statvfs.c @@ -18,8 +18,12 @@ Boston, MA 02111-1307, USA. */ #include <errno.h> -#include <fcntl.h> -#include <unistd.h> +#include <mntent.h> +#include <paths.h> +#include <string.h> +#include <sys/mount.h> +#include <sys/stat.h> +#include <sys/statfs.h> #include <sys/statvfs.h> @@ -30,11 +34,12 @@ statvfs (const char *file, struct statvfs *buf) struct stat st; /* Get as much information as possible from the system. */ - if (__statfs (fd, &fsbuf) < 0) + if (__statfs (file, &fsbuf) < 0) return -1; +#define STAT(st) stat (file, st) #include "internal_statvfs.c" - + /* We signal success if the statfs call succeeded. */ return 0; } |