df: Use statvfs instead of non-standard statfs
Platforms differ on what their implementations of statfs include.
Importantly, FreeBSD's does not include a f_frsize member inside struct
statfs. However, statvfs is specified by POSIX and includes everything
we need, so we can just use that instead.
Signed-off-by: James Clarke <jrtc27@jrtc27.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/coreutils/df.c b/coreutils/df.c
index 121da97..4076b5f 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -77,7 +77,7 @@
//usage: "/dev/sda3 17381728 17107080 274648 98% /\n"
#include <mntent.h>
-#include <sys/vfs.h>
+#include <sys/statvfs.h>
#include "libbb.h"
#include "unicode.h"
@@ -98,7 +98,7 @@
unsigned opt;
FILE *mount_table;
struct mntent *mount_entry;
- struct statfs s;
+ struct statvfs s;
enum {
OPT_KILO = (1 << 0),
@@ -211,7 +211,7 @@
mount_point = mount_entry->mnt_dir;
fs_type = mount_entry->mnt_type;
- if (statfs(mount_point, &s) != 0) {
+ if (statvfs(mount_point, &s) != 0) {
bb_simple_perror_msg(mount_point);
goto set_error;
}