]> git.proxmox.com Git - mirror_spl-debian.git/commitdiff
New upstream version 0.7.11
authorMo Zhou <cdluminate@gmail.com>
Tue, 18 Sep 2018 01:41:34 +0000 (01:41 +0000)
committerMo Zhou <cdluminate@gmail.com>
Tue, 18 Sep 2018 09:04:08 +0000 (09:04 +0000)
42 files changed:
META
Makefile.in
aclocal.m4
cmd/Makefile.in
cmd/splat/Makefile.in
cmd/splslab/Makefile.in
config/kernel-inode-times.m4 [new file with mode: 0644]
config/spl-build.m4
configure
copy-builtin
include/Makefile.in
include/fs/Makefile.in
include/linux/Makefile.in
include/rpc/Makefile.in
include/sharefs/Makefile.in
include/sys/Makefile.in
include/sys/condvar.h
include/sys/fm/Makefile.in
include/sys/fs/Makefile.in
include/sys/isa_defs.h
include/sys/kstat.h
include/sys/rwlock.h
include/sys/time.h
include/sys/types.h
include/sys/vnode.h
include/util/Makefile.in
include/vm/Makefile.in
lib/Makefile.in
man/Makefile.in
man/man1/Makefile.in
man/man5/Makefile.in
module/spl/spl-kstat.c
module/spl/spl-rwlock.c
module/spl/spl-vnode.c
rpm/Makefile.in
rpm/generic/Makefile.in
rpm/generic/spl-kmod.spec.in
rpm/generic/spl.spec.in
rpm/redhat/Makefile.in
rpm/redhat/spl.spec.in
scripts/Makefile.in
spl_config.h.in

diff --git a/META b/META
index 95c93689c7b659a4ad74552af4f46a5a5f2eaefd..fc985974ed37cfac710791fadd159337653b8317 100644 (file)
--- a/META
+++ b/META
@@ -1,7 +1,7 @@
 Meta:         1
 Name:         spl
 Branch:       1.0
-Version:      0.7.9
+Version:      0.7.11
 Release:      1
 Release-Tags: relext
 License:      GPL
index 2a94d10706cf627d88fcd0d6e937a3af7d063e3a..39bdcc4b48f93182fb162b7260a7aa0b44b5e401 100644 (file)
@@ -89,6 +89,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index ca24a586550727945445064d49973362c0e2d520..ffa4e908e1f024f0b11791ec6cfd150245ef6120 100644 (file)
@@ -1020,6 +1020,7 @@ m4_include([config/kernel-ctl-table-name.m4])
 m4_include([config/kernel-fallocate.m4])
 m4_include([config/kernel-group-info.m4])
 m4_include([config/kernel-inode-lock.m4])
+m4_include([config/kernel-inode-times.m4])
 m4_include([config/kernel-kmem-cache.m4])
 m4_include([config/kernel-kuidgid.m4])
 m4_include([config/kernel-pde-data.m4])
index 995858726b3aa8f962e5f7d8614d9abf840208bf..f9dff823a8eec9efd8afdd4c926432cb2ad38d6f 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index b14d55171a09cf7522e3884639493535fdfd2291..e26ff0adf64b8c1bec29163502865f5b090d4fe2 100644 (file)
@@ -52,6 +52,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 9d172744ca8423fecd4b8b06af38a58c31528a96..c22aa07887fc85463d073ba628af35ded1ac1827 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
diff --git a/config/kernel-inode-times.m4 b/config/kernel-inode-times.m4
new file mode 100644 (file)
index 0000000..3a6acd8
--- /dev/null
@@ -0,0 +1,25 @@
+dnl #
+dnl # 4.18 API change
+dnl # i_atime, i_mtime, and i_ctime changed from timespec to timespec64.
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_INODE_TIMES], [
+       AC_MSG_CHECKING([whether inode->i_*time's are timespec64])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct inode ip;
+               struct timespec ts;
+
+               memset(&ip, 0, sizeof(ip));
+               ts = ip.i_mtime;
+       ],[
+               AC_MSG_RESULT(no)
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_INODE_TIMESPEC64_TIMES, 1,
+                   [inode->i_*time's are timespec64])
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
index 5c6c02af2ad8e065d71e06bb6620d69462e2f676..0dc5be81012ae72f2d5f830127be961b6a4a5fee 100644 (file)
@@ -43,6 +43,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
        SPL_AC_2ARGS_VFS_GETATTR
        SPL_AC_USLEEP_RANGE
        SPL_AC_KMEM_CACHE_ALLOCFLAGS
+       SPL_AC_KERNEL_INODE_TIMES
        SPL_AC_WAIT_ON_BIT
        SPL_AC_INODE_LOCK
        SPL_AC_GROUP_INFO_GID
index 7c40f9ba11d432d33b678e960aef8056fdb3bd5b..7621ac419bf56895cf5010bcb3fc977c64117a6a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for spl 0.7.9.
+# Generated by GNU Autoconf 2.63 for spl 0.7.11.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -743,8 +743,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='spl'
 PACKAGE_TARNAME='spl'
-PACKAGE_VERSION='0.7.9'
-PACKAGE_STRING='spl 0.7.9'
+PACKAGE_VERSION='0.7.11'
+PACKAGE_STRING='spl 0.7.11'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -1535,7 +1535,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures spl 0.7.9 to adapt to many kinds of systems.
+\`configure' configures spl 0.7.11 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1606,7 +1606,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of spl 0.7.9:";;
+     short | recursive ) echo "Configuration of spl 0.7.11:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,7 +1720,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-spl configure 0.7.9
+spl configure 0.7.11
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by spl $as_me 0.7.9, which was
+It was created by spl $as_me 0.7.11, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2888,7 +2888,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='spl'
- VERSION='0.7.9'
+ VERSION='0.7.11'
 
 
 cat >>confdefs.h <<_ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether inode->i_*time's are timespec64" >&5
+$as_echo_n "checking whether inode->i_*time's are timespec64... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/fs.h>
+
+int
+main (void)
+{
+
+               struct inode ip;
+               struct timespec ts;
+
+               memset(&ip, 0, sizeof(ip));
+               ts = ip.i_mtime;
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build && touch build/conftest.mod.c
+       echo "obj-m := conftest.o" >build/Makefile
+       modpost_flag=''
+       test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INODE_TIMESPEC64_TIMES 1
+_ACEOF
+
+
+
+
+fi
+
+       rm -Rf build
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
+
        { $as_echo "$as_me:$LINENO: checking whether wait_on_bit() takes an action" >&5
 $as_echo_n "checking whether wait_on_bit() takes an action... " >&6; }
 
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether inode->i_*time's are timespec64" >&5
+$as_echo_n "checking whether inode->i_*time's are timespec64... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/fs.h>
+
+int
+main (void)
+{
+
+               struct inode ip;
+               struct timespec ts;
+
+               memset(&ip, 0, sizeof(ip));
+               ts = ip.i_mtime;
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build && touch build/conftest.mod.c
+       echo "obj-m := conftest.o" >build/Makefile
+       modpost_flag=''
+       test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INODE_TIMESPEC64_TIMES 1
+_ACEOF
+
+
+
+
+fi
+
+       rm -Rf build
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
+
        { $as_echo "$as_me:$LINENO: checking whether wait_on_bit() takes an action" >&5
 $as_echo_n "checking whether wait_on_bit() takes an action... " >&6; }
 
@@ -19246,7 +19394,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by spl $as_me 0.7.9, which was
+This file was extended by spl $as_me 0.7.11, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19309,7 +19457,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-spl config.status 0.7.9
+spl config.status 0.7.11
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 34c482bab697cf1672617e79a9a19940c46a9804..b8e3a08de8eec7d1be91f7a17f9edd43d834b561 100755 (executable)
@@ -88,32 +88,7 @@ EOF
        done
 } > "$KERNEL_DIR/spl/Kbuild"
 
-add_after()
-{
-       local FILE="$1"
-       local MARKER="$2"
-       local NEW="$3"
-       local LINE
-
-       while IFS='' read -r LINE
-       do
-               echo "$LINE"
-
-               if [ -n "$MARKER" -a "$LINE" = "$MARKER" ]
-               then
-                       echo "$NEW"
-                       MARKER=''
-                       if IFS='' read -r LINE
-                       then
-                               [ "$LINE" != "$NEW" ] && echo "$LINE"
-                       fi
-               fi
-       done < "$FILE" > "$FILE.new"
-
-       mv "$FILE.new" "$FILE"
-}
-
-add_after "$KERNEL_DIR/Kconfig" 'source "arch/$SRCARCH/Kconfig"' 'source "spl/Kconfig"'
+echo 'source "spl/Kconfig"' >>"$KERNEL_DIR/Kconfig"
 # We must take care to build SPL before ZFS, otherwise the symbols required
 # to link ZFS will not be available.
 sed -i 's~mm/ fs/~mm/ spl/ fs/~' "$KERNEL_DIR/Makefile"
index 49ff14f526e08e330e1c91ec8a92683d90445ea6..a7e2e02ac9f58b26e73f9a0fa101f15da8912649 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 1b4319550a206a67fdbbbc6653462f05b862de56..b3a69ed990925136d42c68054936f4992b1fc021 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 65ea52992a484f146261f0e573783c7e0a55985a..9d0713ecde2ac8bf0f6d97c238d9577da114d61c 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 403cd41c871b7216647c85d82ad25d4234ab3dd2..75eadf06ef30b14ec5dc9c0564b53705bda11428 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 0765d82caa32ce47dd3b67a1e8486fcc6f730086..a705acf3e17561e9e02ef3cbecae8487f5ee5cf7 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 5c61b0f339a63ccc766980399d452404db2e5e8c..7b2409c3f6d4f32f1c49c62479fce0c58946eba4 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 5fcc9068a3cd983686c4b3c9f034f7eca0c3a939..ce3149aa19f25cfa5f63c506b1bd6f50aad658ca 100644 (file)
@@ -31,6 +31,7 @@
 #include <sys/kmem.h>
 #include <sys/mutex.h>
 #include <sys/callo.h>
+#include <sys/time.h>
 
 /*
  * The kcondvar_t struct is protected by mutex taken externally before
index 5547fffededceaf5a49611d95557e01671462288..14765b7b74a6ac0f6bce8004b5aa19a83cd9061a 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 1a4e0a4dfe9a79eb5f25f13c3cae8b3e0bcb3212..19859f9d24819db8bce98d1cb0ed19538b8c78cf 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 55597828054b010234d5a198818548ee1794ff24..13dcb357c29c654cbd98d483e4fd6b680a15db1b 100644 (file)
 
 #include <sys/byteorder.h>
 
+/*
+ * CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS will be defined by the Linux
+ * kernel for architectures which support efficient unaligned access.
+ */
+#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
+#define        HAVE_EFFICIENT_UNALIGNED_ACCESS
+#endif
+
 #if defined(__LITTLE_ENDIAN) && !defined(_LITTLE_ENDIAN)
 #define        _LITTLE_ENDIAN __LITTLE_ENDIAN
 #endif
index 2018019965e4c01ea1dd9fd0ddb20c682545a9ce..b8aa7ed63ca8e5ca364908455b0c17ecefe2f435 100644 (file)
@@ -72,7 +72,7 @@
 #define        KSTAT_FLAG_UNSUPPORTED  \
        (KSTAT_FLAG_VAR_SIZE | KSTAT_FLAG_WRITABLE | \
        KSTAT_FLAG_PERSISTENT | KSTAT_FLAG_DORMANT)
-
+#define        KSTAT_FLAG_NO_HEADERS   0x80
 
 #define        KS_MAGIC                0x9d9d9d9d
 
index 325dfc499c98c75a728fb8767c1b3818c9441a49..2699229684addd6ba8e5321350a178f744a62ce1 100644 (file)
@@ -135,7 +135,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
 }
 
 /*
- * The following functions must be a #define   and not static inline.
+ * The following functions must be a #define and not static inline.
  * This ensures that the native linux semaphore functions (down/up)
  * will be correctly located in the users code which is important
  * for the built in kernel lock analysis tools
@@ -151,10 +151,10 @@ RW_LOCK_HELD(krwlock_t *rwp)
        spl_rw_set_type(rwp, type);                                     \
 })
 
-#define        rw_destroy(rwp)                                                 \
-({                                                                     \
-       VERIFY(!RW_LOCK_HELD(rwp));                                     \
-})
+/*
+ * The Linux rwsem implementation does not require a matching destroy.
+ */
+#define        rw_destroy(rwp)         ((void) 0)
 
 #define        rw_tryenter(rwp, rw)                                            \
 ({                                                                     \
index ddda6deadaeac87ee52c7034073bada84a82af15..59557afd01ded184f67b501f3c43e06269411ebc 100644 (file)
 #define        NSEC2SEC(n)     ((n) / (NANOSEC / SEC))
 #define        SEC2NSEC(m)     ((hrtime_t)(m) * (NANOSEC / SEC))
 
+typedef longlong_t             hrtime_t;
+typedef struct timespec                timespec_t;
+
 static const int hz = HZ;
 
 #define        TIMESPEC_OVERFLOW(ts)           \
        ((ts)->tv_sec < TIME_MIN || (ts)->tv_sec > TIME_MAX)
 
+#if defined(HAVE_INODE_TIMESPEC64_TIMES)
+typedef struct timespec64      inode_timespec_t;
+#else
+typedef struct timespec                inode_timespec_t;
+#endif
+
 static inline void
-gethrestime(timestruc_t *now)
-{
-       *now = current_kernel_time();
+gethrestime(inode_timespec_t *ts)
+ {
+#if defined(HAVE_INODE_TIMESPEC64_TIMES)
+       *ts = current_kernel_time64();
+#else
+       *ts = current_kernel_time();
+#endif
 }
 
 static inline time_t
@@ -74,9 +87,9 @@ gethrestime_sec(void)
 static inline hrtime_t
 gethrtime(void)
 {
-       struct timespec now;
-       getrawmonotonic(&now);
-       return (((hrtime_t)now.tv_sec * NSEC_PER_SEC) + now.tv_nsec);
+       struct timespec ts;
+       getrawmonotonic(&ts);
+       return (((hrtime_t)ts.tv_sec * NSEC_PER_SEC) + ts.tv_nsec);
 }
 
 #endif  /* _SPL_TIME_H */
index 2fe63b73b3621254d6026be27d5c715dae67faca..b958462287e31cb840fed7e0158f48bcf0bdf1a1 100644 (file)
@@ -49,9 +49,6 @@ typedef long long                     offset_t;
 typedef struct task_struct             kthread_t;
 typedef struct task_struct             proc_t;
 typedef short                          pri_t;
-typedef struct timespec                        timestruc_t; /* definition per SVr4 */
-typedef struct timespec                        timespec_t;
-typedef longlong_t                     hrtime_t;
 typedef unsigned short                 ushort_t;
 typedef u_longlong_t                   len_t;
 typedef longlong_t                     diskaddr_t;
index 0ed479486f9fc699b6dc877f9b70f3753c79207c..87f12d667c2e585653a8ee3c5957ba3ef92d199e 100644 (file)
@@ -129,9 +129,9 @@ typedef struct vattr {
        long            va_nodeid;      /* node # */
        uint32_t        va_nlink;       /* # links */
        uint64_t        va_size;        /* file size */
-       struct timespec va_atime;       /* last acc */
-       struct timespec va_mtime;       /* last mod */
-       struct timespec va_ctime;       /* last chg */
+       inode_timespec_t va_atime;      /* last acc */
+       inode_timespec_t va_mtime;      /* last mod */
+       inode_timespec_t va_ctime;      /* last chg */
        dev_t           va_rdev;        /* dev */
        uint64_t        va_nblocks;     /* space used */
        uint32_t        va_blksize;     /* block size */
index b62b1a81d23c7e9d84e07356f3088f1d77ee1e95..d4d8a2c0eb2e9f21022db7dfa6c2e04920d26e7d 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 65084d6fd41ac0f320fcc09c3aa0d955e77d06d2..140dc0a891012489750b7cde77746e19eddf1680 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index b7fed09013e7a739e4b0d75a2378025cdf61398a..1ecc852d710a65817f57c15bfad54467bc99e8fd 100644 (file)
@@ -51,6 +51,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 8c15e8d737bd539ca47615f132f2cfc55dd6c2a3..ca9b4f08be98db56d663ef1b28fea7fe2f6bf06b 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 373e36872983fe0c14e33fac0d596de3a3b94e46..6b2d87412f21ac82e3d3aa6e4420d25cac1390ba 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 15a7961baf0279ab3c02bada0664229e60c94ae6..f44c609cb20b1d4b2c3b298657f3cb580d45b4f5 100644 (file)
@@ -42,6 +42,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 6970fcc8a84b5c77a010b0a984dbb9c57ef23bfa..f9b9015e7254cfd817b48bbb7fce2138fa183196 100644 (file)
@@ -388,7 +388,8 @@ kstat_seq_start(struct seq_file *f, loff_t *pos)
 
        ksp->ks_snaptime = gethrtime();
 
-       if (!n && kstat_seq_show_headers(f))
+       if (!(ksp->ks_flags & KSTAT_FLAG_NO_HEADERS) && !n &&
+           kstat_seq_show_headers(f))
                return (NULL);
 
        if (n >= ksp->ks_ndata)
@@ -538,7 +539,6 @@ __kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
        ASSERT(ks_module);
        ASSERT(ks_instance == 0);
        ASSERT(ks_name);
-       ASSERT(!(ks_flags & KSTAT_FLAG_UNSUPPORTED));
 
        if ((ks_type == KSTAT_TYPE_INTR) || (ks_type == KSTAT_TYPE_IO))
                ASSERT(ks_ndata == 1);
index bf7ee2f837f12d935ff9a6f913d2a025569aea68..ac28c91899b89975d9d56bfb17517761f2937b96 100644 (file)
 static int
 __rwsem_tryupgrade(struct rw_semaphore *rwsem)
 {
-
+#if defined(READER_BIAS) && defined(WRITER_BIAS)
+       /*
+        * After the 4.9.20-rt16 kernel the realtime patch series lifted the
+        * single reader restriction.  While this could be accommodated by
+        * adding additional compatibility code assume the rwsem can never
+        * be upgraded.  All caller must already cleanly handle this case.
+        */
+       return (0);
+#else
        ASSERT((struct task_struct *)
            ((unsigned long)rwsem->lock.owner & ~RT_MUTEX_OWNER_MASKALL) ==
            current);
 
        /*
-        * Under the realtime patch series, rwsem is implemented as a
-        * single mutex held by readers and writers alike. However,
-        * this implementation would prevent a thread from taking a
-        * read lock twice, as the mutex would already be locked on
+        * Prior to 4.9.20-rt16 kernel the realtime patch series, rwsem is
+        * implemented as a single mutex held by readers and writers alike.
+        * However, this implementation would prevent a thread from taking
+        * read lock twice, as the mutex would already be locked on
         * the second attempt. Therefore the implementation allows a
         * single thread to take a rwsem as read lock multiple times
         * tracking that nesting as read_depth counter.
@@ -59,6 +67,7 @@ __rwsem_tryupgrade(struct rw_semaphore *rwsem)
                return (1);
        }
        return (0);
+#endif
 }
 #elif defined(CONFIG_RWSEM_GENERIC_SPINLOCK)
 static int
index 74ae8fe06f5c44fd8ce90df0332955df212cafb2..cd0015f6b857edcf314dbb06594de4d2734b5fd1 100644 (file)
@@ -670,6 +670,8 @@ vn_file_cache_destructor(void *buf, void *cdrarg)
 int
 spl_vn_init(void)
 {
+       spin_lock_init(&vn_file_lock);
+
        vn_cache = kmem_cache_create("spl_vn_cache",
            sizeof (struct vnode), 64, vn_cache_constructor,
            vn_cache_destructor, NULL, NULL, NULL, 0);
index 44ec84f7d518bb9bf8e219f1509abb5226726a53..3fb5ab0318d3649a05a9fefa78145550a0ab891e 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 76ee55b349d7e20d4b5f0737b6707277e0b83b55..0a0faf78724ec2f9c830412dfebe78ba07c8f83a 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 9cd22251642f25a0502aa859ddd6d63398fa2088..4cc1fafbe252af7395d7021d64305e994a87fbd5 100644 (file)
@@ -167,6 +167,12 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1
+- Released 0.7.11-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
+* Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1
+- Released 0.7.10-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10
 * Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1
 - Released 0.7.9-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9
index 39c6411a9d58d70364f45c84b9a1a742369c06ac..4b3a3d70597453248043cdee6ea20cc94435e563 100644 (file)
@@ -44,6 +44,12 @@ make install DESTDIR=%{?buildroot}
 %{_mandir}/man5/*
 
 %changelog
+* Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1
+- Released 0.7.11-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
+* Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1
+- Released 0.7.10-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10
 * Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1
 - Released 0.7.9-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9
index 39f5ec298396f80a1b9777b13babd67a1c1ec53e..316b63fde2f40b6c5b42259f8b4ab2a7923fe49e 100644 (file)
@@ -43,6 +43,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index 39c6411a9d58d70364f45c84b9a1a742369c06ac..4b3a3d70597453248043cdee6ea20cc94435e563 100644 (file)
@@ -44,6 +44,12 @@ make install DESTDIR=%{?buildroot}
 %{_mandir}/man5/*
 
 %changelog
+* Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1
+- Released 0.7.11-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
+* Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1
+- Released 0.7.10-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10
 * Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1
 - Released 0.7.9-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9
index 78a0cd7bfee6228749c4be8eb154786146dc818f..475539f7c8fb20f3eee055604c58b763cbd8ddd6 100644 (file)
@@ -41,6 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/kernel-ctl-table-name.m4 \
        $(top_srcdir)/config/kernel-fallocate.m4 \
        $(top_srcdir)/config/kernel-group-info.m4 \
        $(top_srcdir)/config/kernel-inode-lock.m4 \
+       $(top_srcdir)/config/kernel-inode-times.m4 \
        $(top_srcdir)/config/kernel-kmem-cache.m4 \
        $(top_srcdir)/config/kernel-kuidgid.m4 \
        $(top_srcdir)/config/kernel-pde-data.m4 \
index c963e5e73d90538714434cf3a4f486e54716ab13..e7243c564edfe2e6e510510582bd6ebb9c318bb6 100644 (file)
@@ -57,6 +57,9 @@
 /* yes */
 #undef HAVE_INODE_LOCK_SHARED
 
+/* inode->i_*time's are timespec64 */
+#undef HAVE_INODE_TIMESPEC64_TIMES
+
 /* truncate_range() inode operation is available */
 #undef HAVE_INODE_TRUNCATE_RANGE