It is recommended to test a HAVE_* macro instead of directly testing the
host type in source code. Hence this patch.

Signed-off-by: Bart Van Assche <[email protected]>
---
 configure.ac             |  2 ++
 lib/libf2fs.c            |  4 +++-
 lib/libf2fs_io.c         | 10 +++++++---
 lib/libf2fs_zoned.c      |  2 +-
 mkfs/f2fs_format.c       |  4 +++-
 mkfs/f2fs_format_main.c  |  2 +-
 mkfs/f2fs_format_utils.c |  7 +++++--
 7 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index fc094b72b583..f0ed5f6528d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,6 +116,7 @@ AC_CHECK_HEADERS(m4_flatten([
        sys/acl.h
        sys/ioctl.h
        sys/mount.h
+       sys/stat.h
        sys/syscall.h
        sys/sysmacros.h
        sys/utsname.h
@@ -138,6 +139,7 @@ AC_CHECK_FUNCS_ONCE([
        fsetxattr
        fstat
        fstat64
+       fsync
        getgid
        getmntent
        getuid
diff --git a/lib/libf2fs.c b/lib/libf2fs.c
index c7102528f2f4..aa4e854acc9d 100644
--- a/lib/libf2fs.c
+++ b/lib/libf2fs.c
@@ -22,8 +22,10 @@
 #endif
 #include <time.h>
 #include <sys/stat.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
 #ifdef HAVE_SYS_SYSMACROS_H
diff --git a/lib/libf2fs_io.c b/lib/libf2fs_io.c
index 287199314190..09a689293356 100644
--- a/lib/libf2fs_io.c
+++ b/lib/libf2fs_io.c
@@ -23,9 +23,13 @@
 #include <mntent.h>
 #endif
 #include <time.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
 #ifdef HAVE_LINUX_HDREG_H
@@ -634,7 +638,7 @@ int dev_reada_block(__u64 blk_addr)
 
 int f2fs_fsync_device(void)
 {
-#ifndef _WIN32
+#ifdef HAVE_FSYNC
        int i;
 
        for (i = 0; i < c.ndevs; i++) {
@@ -783,7 +787,7 @@ int f2fs_finalize_device(void)
         * in the block device page cache.
         */
        for (i = 0; i < c.ndevs; i++) {
-#ifndef _WIN32
+#ifdef HAVE_FSYNC
                ret = fsync(c.devices[i].fd);
                if (ret < 0) {
                        MSG(0, "\tError: Could not conduct fsync!!!\n");
diff --git a/lib/libf2fs_zoned.c b/lib/libf2fs_zoned.c
index cb954feabe61..fdde3f70a606 100644
--- a/lib/libf2fs_zoned.c
+++ b/lib/libf2fs_zoned.c
@@ -22,7 +22,7 @@
 #ifdef HAVE_LINUX_LIMITS_H
 #include <linux/limits.h>
 #endif
-#ifndef _WIN32
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
 #include <libgen.h>
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 6f2761cfdb75..ce7d1c9e40bd 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -13,8 +13,10 @@
 #include <fcntl.h>
 #include <string.h>
 #include <unistd.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
 #endif
 #include <time.h>
diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c
index 4d4fad9ad86d..b8936f15e0f2 100644
--- a/mkfs/f2fs_format_main.c
+++ b/mkfs/f2fs_format_main.c
@@ -15,7 +15,7 @@
 #include <stdbool.h>
 #include <unistd.h>
 #include <sys/stat.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
 #endif
 #include <time.h>
diff --git a/mkfs/f2fs_format_utils.c b/mkfs/f2fs_format_utils.c
index 53101d1bd790..e3c58936e968 100644
--- a/mkfs/f2fs_format_utils.c
+++ b/mkfs/f2fs_format_utils.c
@@ -26,7 +26,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdbool.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
 #include <sys/stat.h>
@@ -39,16 +39,19 @@
 #include <linux/falloc.h>
 #endif
 
+#ifdef __linux__
 #ifndef BLKDISCARD
 #define BLKDISCARD     _IO(0x12,119)
 #endif
 #ifndef BLKSECDISCARD
 #define BLKSECDISCARD  _IO(0x12,125)
 #endif
+#endif
 
 static int trim_device(int i)
 {
-#ifndef _WIN32
+#if defined(FALLOC_FL_PUNCH_HOLE) || defined(BLKDISCARD) || \
+       defined(BLKSECDISCARD)
        unsigned long long range[2];
        struct stat *stat_buf;
        struct device_info *dev = c.devices + i;


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to