From b35b4eb8f91d13a326213f989ea1d20e02c68e20 Mon Sep 17 00:00:00 2001 From: Jan Tulak Date: Wed, 14 Oct 2015 10:58:24 +1100 Subject: [PATCH] platform: Add statvfs64 for OS X Simply rename statvfs64 to statfs with a #define. OSX version of statvfs is missing some members, so if the renaming is in effect (stavfs64 is defined), don't try to use them and go directly for the other member value. Signed-off-by: Jan Tulak Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- fsr/xfs_fsr.c | 8 ++++++++ include/builddefs.in | 2 +- include/darwin.h | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c index e1b7bd6c0..c8ef18fca 100644 --- a/fsr/xfs_fsr.c +++ b/fsr/xfs_fsr.c @@ -948,7 +948,11 @@ fsrfile_common( fname, strerror(errno)); return -1; } +#ifndef statvfs64 bsize = vfss.f_frsize ? vfss.f_frsize : vfss.f_bsize; +#else + bsize = vfss.f_bsize; +#endif if (statp->bs_blksize * statp->bs_blocks > vfss.f_bfree * bsize - minimumfree) { fsrprintf(_("insufficient freespace for: %s: " @@ -1728,7 +1732,11 @@ xfs_getrt(int fd, struct statvfs64 *sfbp) close(fd); return -1; } +#ifndef statvfs64 bsize = (sfbp->f_frsize ? sfbp->f_frsize : sfbp->f_bsize); +#else + bsize = sfbp->f_bsize; +#endif factor = fsgeom.blocksize / bsize; /* currently this is == 1 */ sfbp->f_bfree = (cnt.freertx * fsgeom.rtextsize) * factor; return 0; diff --git a/include/builddefs.in b/include/builddefs.in index 25b8816ba..31e21baba 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -123,7 +123,7 @@ PCFLAGS = -D_GNU_SOURCE $(GCCFLAGS) endif ifeq ($(PKG_PLATFORM),darwin) PCFLAGS = $(GCCFLAGS) -DEPENDFLAGS = -D__APPLE__ +DEPENDFLAGS = -D__APPLE__ -D_DARWIN_FEATURE_64_BIT_INODE endif ifeq ($(PKG_PLATFORM),irix) PLDLIBS = -ldisk -lgen diff --git a/include/darwin.h b/include/darwin.h index 0d2f17582..288ad1fb8 100644 --- a/include/darwin.h +++ b/include/darwin.h @@ -216,4 +216,9 @@ static inline int timer_gettime (timer_t timerid, struct itimerspec *value) return getitimer(ITIMER_REAL, value); } +/* FSR */ + +#define statvfs64 statfs +#define _PATH_MOUNTED "/etc/mtab" + #endif /* __XFS_DARWIN_H__ */ -- 2.47.2