aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs.c3
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/statvfs.c13
3 files changed, 12 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index dbc4c55..b69bf77 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 24765dc..2ea380d 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 9bbe6c2..7f85c9b 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;
}