xfs
[Top] [All Lists]

[PATCH xfsprogs 11/14] replace statvfs64 by equivalent statvfs

To: xfs@xxxxxxxxxxx
Subject: [PATCH xfsprogs 11/14] replace statvfs64 by equivalent statvfs
From: Felix Janda <felix.janda@xxxxxxxxx>
Date: Sun, 7 Aug 2016 08:24:40 +0200
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <cover.1470555003.git.felix.janda@xxxxxxxxx>
References: <cover.1470555003.git.felix.janda@xxxxxxxxx>
For this it was necessary to change a workaround for missing
f_brsize on Mac OS X.

Signed-off-by: Felix Janda <felix.janda@xxxxxxxxx>
---
 fsr/xfs_fsr.c    | 16 ++++------------
 include/darwin.h |  4 ++--
 2 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index 98390e7..f3cc07e 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -89,7 +89,7 @@ static void fsrallfs(char *mtab, int howlong, char 
*leftofffile);
 static void fsrall_cleanup(int timeout);
 static int  getnextents(int);
 int xfsrtextsize(int fd);
-int xfs_getrt(int fd, struct statvfs64 *sfbp);
+int xfs_getrt(int fd, struct statvfs *sfbp);
 char * gettmpname(char *fname);
 char * getparent(char *fname);
 int fsrprintf(const char *fmt, ...);
@@ -888,7 +888,7 @@ fsrfile_common(
        xfs_bstat_t     *statp)
 {
        int             error;
-       struct statvfs64 vfss;
+       struct statvfs vfss;
        struct fsxattr  fsx;
        unsigned long   bsize;
 
@@ -940,16 +940,12 @@ fsrfile_common(
         * Note that xfs_bstat.bs_blksize returns the filesystem blocksize,
         * not the optimal I/O size as struct stat.
         */
-       if (statvfs64(fsname ? fsname : fname, &vfss) < 0) {
+       if (statvfs(fsname ? fsname : fname, &vfss) < 0) {
                fsrprintf(_("unable to get fs stat on %s: %s\n"),
                        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: "
@@ -1704,7 +1700,7 @@ xfs_getgeom(int fd, xfs_fsop_geom_v1_t * fsgeom)
  * Get xfs realtime space information
  */
 int
-xfs_getrt(int fd, struct statvfs64 *sfbp)
+xfs_getrt(int fd, struct statvfs *sfbp)
 {
        unsigned long   bsize;
        unsigned long   factor;
@@ -1717,11 +1713,7 @@ 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/darwin.h b/include/darwin.h
index fb13915..bd1a112 100644
--- a/include/darwin.h
+++ b/include/darwin.h
@@ -216,8 +216,8 @@ static inline int timer_gettime (timer_t timerid, struct 
itimerspec *value)
 #  include <sys/param.h>
 #include <sys/ucred.h>
 #include <errno.h>
-#define statvfs64      statfs
-#define                _PATH_MOUNTED   "/etc/mtab"
+#define f_frsize       f_bsize
+#define _PATH_MOUNTED  "/etc/mtab"
 
 struct mntent
 {
-- 
2.7.3

<Prev in Thread] Current Thread [Next in Thread>