Make sure we have struct statfs before using.

This commit is contained in:
Darren Tucker 2019-10-28 16:09:04 +11:00
parent 2912596aec
commit d561b0b2fa
2 changed files with 9 additions and 3 deletions

View File

@ -3751,7 +3751,7 @@ AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t], , , [
#endif
])
AC_CHECK_MEMBERS([struct statfs.f_flags], [], [], [[
AC_CHECK_MEMBERS([struct statfs.f_files, struct statfs.f_flags], [], [], [[
#include <sys/types.h>
#ifdef HAVE_SYS_BITYPES_H
#include <sys/bitypes.h>

View File

@ -29,6 +29,11 @@
# define MNAMELEN 32
#endif
#ifdef HAVE_STRUCT_STATFS_F_FILES
# define HAVE_STRUCT_STATFS
#endif
#ifdef HAVE_STRUCT_STATFS
static void
copy_statfs_to_statvfs(struct statvfs *to, struct statfs *from)
{
@ -48,11 +53,12 @@ copy_statfs_to_statvfs(struct statvfs *to, struct statfs *from)
#endif
to->f_namemax = MNAMELEN;
}
#endif
# ifndef HAVE_STATVFS
int statvfs(const char *path, struct statvfs *buf)
{
# ifdef HAVE_STATFS
# if defined(HAVE_STATFS) && defined(HAVE_STRUCT_STATFS)
struct statfs fs;
memset(&fs, 0, sizeof(fs));
@ -70,7 +76,7 @@ int statvfs(const char *path, struct statvfs *buf)
# ifndef HAVE_FSTATVFS
int fstatvfs(int fd, struct statvfs *buf)
{
# ifdef HAVE_FSTATFS
# if defined(HAVE_FSTATFS) && defined(HAVE_STRUCT_STATFS)
struct statfs fs;
memset(&fs, 0, sizeof(fs));