From 0e9bcd5d4fc9e34e3808fdcbae8ce547fd1668d5 Mon Sep 17 00:00:00 2001 From: Matt Macy Date: Tue, 12 Jan 2021 16:22:29 -0800 Subject: [PATCH] FreeBSD: fix HEAD build, conditionally remove FDSYNC defines Reviewed-by: Ryan Moeller Reviewed-by: Brian Behlendorf Signed-off-by: Matt Macy Closes #11458 --- include/os/freebsd/spl/sys/Makefile.am | 1 + include/os/freebsd/spl/sys/ccompile.h | 4 -- include/os/freebsd/spl/sys/fcntl.h | 38 +++++++++++++++++++ include/os/freebsd/spl/sys/vnode.h | 2 + lib/libspl/include/os/freebsd/Makefile.am | 4 ++ lib/libspl/include/os/freebsd/fcntl.h | 33 ++++++++++++++++ lib/libspl/include/os/freebsd/sys/Makefile.am | 1 + lib/libspl/include/os/freebsd/sys/fcntl.h | 38 +++++++++++++++++++ 8 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 include/os/freebsd/spl/sys/fcntl.h create mode 100644 lib/libspl/include/os/freebsd/fcntl.h create mode 100644 lib/libspl/include/os/freebsd/sys/fcntl.h diff --git a/include/os/freebsd/spl/sys/Makefile.am b/include/os/freebsd/spl/sys/Makefile.am index 7d82e2d6d4e..ca45b42b6b8 100644 --- a/include/os/freebsd/spl/sys/Makefile.am +++ b/include/os/freebsd/spl/sys/Makefile.am @@ -15,6 +15,7 @@ KERNEL_H = \ disp.h \ dkio.h \ extdirent.h \ + fcntl.h \ file.h \ freebsd_rwlock.h \ inttypes.h \ diff --git a/include/os/freebsd/spl/sys/ccompile.h b/include/os/freebsd/spl/sys/ccompile.h index a02e8f09854..7109d42ffbb 100644 --- a/include/os/freebsd/spl/sys/ccompile.h +++ b/include/os/freebsd/spl/sys/ccompile.h @@ -166,10 +166,6 @@ extern "C" { #define ECHRNG ENXIO #define ETIME ETIMEDOUT -#define O_LARGEFILE 0 -#define O_RSYNC 0 -#define O_DSYNC 0 - #ifndef LOCORE #ifndef HAVE_RPC_TYPES typedef int bool_t; diff --git a/include/os/freebsd/spl/sys/fcntl.h b/include/os/freebsd/spl/sys/fcntl.h new file mode 100644 index 00000000000..4301d6e151d --- /dev/null +++ b/include/os/freebsd/spl/sys/fcntl.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 iXsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _SPL_SYS_FCNTL_H_ +#define _SPL_SYS_FCNTL_H_ + +#include_next + +#define O_LARGEFILE 0 +#define O_RSYNC 0 + +#ifndef O_DSYNC +#define O_DSYNC 0 +#endif + +#endif /* _SPL_SYS_FCNTL_H_ */ diff --git a/include/os/freebsd/spl/sys/vnode.h b/include/os/freebsd/spl/sys/vnode.h index 6a614613276..fa7bbd88c6c 100644 --- a/include/os/freebsd/spl/sys/vnode.h +++ b/include/os/freebsd/spl/sys/vnode.h @@ -127,7 +127,9 @@ vn_is_readonly(vnode_t *vp) #define FCREAT O_CREAT #define FTRUNC O_TRUNC #define FEXCL O_EXCL +#ifndef FDSYNC #define FDSYNC FFSYNC +#endif #define FRSYNC FFSYNC #define FSYNC FFSYNC #define FOFFMAX 0x00 diff --git a/lib/libspl/include/os/freebsd/Makefile.am b/lib/libspl/include/os/freebsd/Makefile.am index 081839c48c8..f06325ee3e4 100644 --- a/lib/libspl/include/os/freebsd/Makefile.am +++ b/lib/libspl/include/os/freebsd/Makefile.am @@ -1 +1,5 @@ SUBDIRS = sys + +libspldir = $(includedir)/libspl +libspl_HEADERS = \ + fcntl.h diff --git a/lib/libspl/include/os/freebsd/fcntl.h b/lib/libspl/include/os/freebsd/fcntl.h new file mode 100644 index 00000000000..26d571ad892 --- /dev/null +++ b/lib/libspl/include/os/freebsd/fcntl.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 iXsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LIBSPL_FCNTL_H_ +#define _LIBSPL_FCNTL_H_ + +#include_next + +#include + +#endif /* _LIBSPL_FCNTL_H_ */ diff --git a/lib/libspl/include/os/freebsd/sys/Makefile.am b/lib/libspl/include/os/freebsd/sys/Makefile.am index 6775522f5d7..7a854608079 100644 --- a/lib/libspl/include/os/freebsd/sys/Makefile.am +++ b/lib/libspl/include/os/freebsd/sys/Makefile.am @@ -1,6 +1,7 @@ libspldir = $(includedir)/libspl/sys libspl_HEADERS = \ byteorder.h \ + fcntl.h \ file.h \ mnttab.h \ mount.h \ diff --git a/lib/libspl/include/os/freebsd/sys/fcntl.h b/lib/libspl/include/os/freebsd/sys/fcntl.h new file mode 100644 index 00000000000..c8a37a19385 --- /dev/null +++ b/lib/libspl/include/os/freebsd/sys/fcntl.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 iXsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LIBSPL_SYS_FCNTL_H_ +#define _LIBSPL_SYS_FCNTL_H_ + +#include_next + +#define O_LARGEFILE 0 +#define O_RSYNC 0 + +#ifndef O_DSYNC +#define O_DSYNC 0 +#endif + +#endif /* _LIBSPL_SYS_FCNTL_H_ */ -- 2.45.0