New upstream version 0.7.11

This commit is contained in:
Mo Zhou 2018-09-18 01:41:34 +00:00
parent 5fb4ba9503
commit b97c779121
42 changed files with 285 additions and 62 deletions

2
META
View File

@ -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

View 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 \

1
aclocal.m4 vendored
View 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])

View 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 \

View 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 \

View 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 \

View File

@ -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"
])

View 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

168
configure vendored
View File

@ -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
@ -14402,6 +14402,80 @@ fi
{ $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; }
@ -17878,6 +17952,80 @@ fi
{ $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'`\\"

View File

@ -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"

View 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 \

View 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 \

View 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 \

View 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 \

View 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 \

View 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 \

View 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

View 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 \

View 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 \

View File

@ -210,6 +210,14 @@
#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

View 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

View File

@ -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) \
({ \

View File

@ -52,15 +52,28 @@
#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)
gethrestime(inode_timespec_t *ts)
{
*now = current_kernel_time();
#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 */

View 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;

View 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 */

View 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 \

View 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 \

View 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 \

View 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 \

View 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 \

View 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 \

View 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);

View File

@ -34,16 +34,24 @@
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
* a 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

View 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);

View 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 \

View 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 \

View 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

View 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

View 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 \

View 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

View 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 \

View 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