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>
This commit is contained in:
parent
24e17b4385
commit
d1535216ca
@ -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 @@ int df_main(int argc UNUSED_PARAM, char **argv)
|
||||
unsigned opt;
|
||||
FILE *mount_table;
|
||||
struct mntent *mount_entry;
|
||||
struct statfs s;
|
||||
struct statvfs s;
|
||||
|
||||
enum {
|
||||
OPT_KILO = (1 << 0),
|
||||
@ -211,7 +211,7 @@ int df_main(int argc UNUSED_PARAM, char **argv)
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user