]> git.proxmox.com Git - mirror_spl-debian.git/commitdiff
New upstream version 0.7.8
authorAron Xu <happyaron.xu@gmail.com>
Wed, 11 Apr 2018 06:52:19 +0000 (14:52 +0800)
committerAron Xu <happyaron.xu@gmail.com>
Wed, 11 Apr 2018 06:52:19 +0000 (14:52 +0800)
179 files changed:
META
Makefile.in
aclocal.m4
cmd/Makefile.in
cmd/splat/Makefile.in
cmd/splslab/Makefile.in
config/compile [new file with mode: 0755]
config/kernel-ctl-table-name.m4 [new file with mode: 0644]
config/kernel-fallocate.m4 [new file with mode: 0644]
config/kernel-group-info.m4 [new file with mode: 0644]
config/kernel-inode-lock.m4 [new file with mode: 0644]
config/kernel-kmem-cache.m4 [new file with mode: 0644]
config/kernel-kuidgid.m4 [new file with mode: 0644]
config/kernel-pde-data.m4 [new file with mode: 0644]
config/kernel-rw.m4 [new file with mode: 0644]
config/kernel-rwsem.m4 [new file with mode: 0644]
config/kernel-sched.m4 [new file with mode: 0644]
config/kernel-set-fs-pwd.m4 [new file with mode: 0644]
config/kernel-shrinker.m4 [new file with mode: 0644]
config/kernel-spinlock.m4 [new file with mode: 0644]
config/kernel-timer.m4 [new file with mode: 0644]
config/kernel-trim-unused-symbols.m4 [new file with mode: 0644]
config/kernel-truncate-range.m4 [new file with mode: 0644]
config/kernel-urange-sleep.m4 [new file with mode: 0644]
config/kernel-vfs-fsync.m4 [new file with mode: 0644]
config/kernel-vfs-getattr.m4 [new file with mode: 0644]
config/kernel-wait.m4 [new file with mode: 0644]
config/kernel-zlib.m4 [new file with mode: 0644]
config/spl-build.m4
configure
include/Makefile.in
include/fs/Makefile.in
include/fs/fs_subr.h
include/linux/Makefile.in
include/linux/math64_compat.h
include/rpc/Makefile.in
include/rpc/types.h
include/rpc/xdr.h
include/sharefs/Makefile.in
include/sharefs/share.h
include/spl-ctl.h
include/splat-ctl.h
include/strings.h
include/sys/Makefile.in
include/sys/acl.h
include/sys/acl_impl.h
include/sys/atomic.h
include/sys/attr.h
include/sys/bitmap.h
include/sys/bootconf.h
include/sys/bootprops.h
include/sys/buf.h
include/sys/byteorder.h
include/sys/callb.h
include/sys/callo.h
include/sys/cmn_err.h
include/sys/compress.h
include/sys/condvar.h
include/sys/conf.h
include/sys/console.h
include/sys/cpupart.h
include/sys/cpuvar.h
include/sys/crc32.h
include/sys/cred.h
include/sys/ctype.h
include/sys/ddi.h
include/sys/debug.h
include/sys/dirent.h
include/sys/disp.h
include/sys/dkioc_free_util.h
include/sys/dnlc.h
include/sys/dumphdr.h
include/sys/efi_partition.h
include/sys/errno.h
include/sys/fcntl.h
include/sys/file.h
include/sys/fm/Makefile.in
include/sys/fs/Makefile.in
include/sys/fs/swapnode.h
include/sys/idmap.h
include/sys/int_limits.h
include/sys/int_types.h
include/sys/inttypes.h
include/sys/isa_defs.h
include/sys/kidmap.h
include/sys/kobj.h
include/sys/kstat.h
include/sys/list.h
include/sys/mkdev.h
include/sys/mntent.h
include/sys/modctl.h
include/sys/mode.h
include/sys/mount.h
include/sys/mutex.h
include/sys/note.h
include/sys/open.h
include/sys/param.h
include/sys/pathname.h
include/sys/policy.h
include/sys/pool.h
include/sys/priv_impl.h
include/sys/proc.h
include/sys/processor.h
include/sys/pset.h
include/sys/random.h
include/sys/refstr.h
include/sys/resource.h
include/sys/rwlock.h
include/sys/sdt.h
include/sys/sid.h
include/sys/signal.h
include/sys/stat.h
include/sys/stropts.h
include/sys/sunddi.h
include/sys/sunldi.h
include/sys/sysdc.h
include/sys/sysevent/Makefile.in
include/sys/sysmacros.h
include/sys/systeminfo.h
include/sys/systm.h
include/sys/t_lock.h
include/sys/taskq.h
include/sys/thread.h
include/sys/timer.h
include/sys/tsd.h
include/sys/types.h
include/sys/u8_textprep.h
include/sys/uio.h
include/sys/unistd.h
include/sys/user.h
include/sys/va_list.h
include/sys/varargs.h
include/sys/vfs.h
include/sys/vfs_opreg.h
include/sys/vmsystm.h
include/sys/vnode.h
include/sys/zmod.h
include/sys/zone.h
include/unistd.h
include/util/Makefile.in
include/util/qsort.h
include/util/sscanf.h
include/vm/Makefile.in
include/vm/anon.h
include/vm/pvn.h
include/vm/seg_kmem.h
lib/Makefile.in
man/Makefile.in
man/man1/Makefile.in
man/man5/Makefile.in
module/spl/spl-atomic.c
module/spl/spl-condvar.c
module/spl/spl-cred.c
module/spl/spl-err.c
module/spl/spl-generic.c
module/spl/spl-kmem-cache.c
module/spl/spl-kmem.c
module/spl/spl-kobj.c
module/spl/spl-kstat.c
module/spl/spl-mutex.c
module/spl/spl-proc.c
module/spl/spl-rwlock.c
module/spl/spl-taskq.c
module/spl/spl-thread.c
module/spl/spl-tsd.c
module/spl/spl-vnode.c
module/spl/spl-xdr.c
module/spl/spl-zlib.c
module/spl/spl.mod.c [new file with mode: 0644]
module/splat/splat-vnode.c
module/splat/splat.mod.c [new file with mode: 0644]
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 4b0c0bb44efdb2bd1714b3e76e37ed21fdedd756..0a5132f6af13686fb562a38eb298521a93913be7 100644 (file)
--- a/META
+++ b/META
@@ -1,7 +1,7 @@
 Meta:         1
 Name:         spl
 Branch:       1.0
-Version:      0.7.6
+Version:      0.7.8
 Release:      1
 Release-Tags: relext
 License:      GPL
index 0ae3d03f1deb0bd34b69733e3ff643bf08d87322..d24ca1cd0b744b003ca40a14195efaca1c2d2422 100644 (file)
@@ -79,13 +79,35 @@ DIST_COMMON = $(am__configure_deps) $(am__extra_HEADERS_DIST) \
        $(top_srcdir)/module/Makefile.in \
        $(top_srcdir)/module/spl/Makefile.in \
        $(top_srcdir)/module/splat/Makefile.in AUTHORS COPYING \
-       config/config.guess config/config.sub config/depcomp \
-       config/install-sh config/ltmain.sh config/missing
+       config/compile config/config.guess config/config.sub \
+       config/depcomp config/install-sh config/ltmain.sh \
+       config/missing
 @CONFIG_USER_TRUE@am__append_1 = lib cmd man scripts
 @CONFIG_KERNEL_TRUE@am__append_2 = module
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 898983a495a74cccc0fe3f217a80a9713a9b5bb9..ca24a586550727945445064d49973362c0e2d520 100644 (file)
@@ -1016,6 +1016,27 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+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-kmem-cache.m4])
+m4_include([config/kernel-kuidgid.m4])
+m4_include([config/kernel-pde-data.m4])
+m4_include([config/kernel-rw.m4])
+m4_include([config/kernel-rwsem.m4])
+m4_include([config/kernel-sched.m4])
+m4_include([config/kernel-set-fs-pwd.m4])
+m4_include([config/kernel-shrinker.m4])
+m4_include([config/kernel-spinlock.m4])
+m4_include([config/kernel-timer.m4])
+m4_include([config/kernel-trim-unused-symbols.m4])
+m4_include([config/kernel-truncate-range.m4])
+m4_include([config/kernel-urange-sleep.m4])
+m4_include([config/kernel-vfs-fsync.m4])
+m4_include([config/kernel-vfs-getattr.m4])
+m4_include([config/kernel-wait.m4])
+m4_include([config/kernel-zlib.m4])
 m4_include([config/libtool.m4])
 m4_include([config/ltoptions.m4])
 m4_include([config/ltsugar.m4])
index 06fb0c560c45519189f72c895bc3ba48cc44946d..995858726b3aa8f962e5f7d8614d9abf840208bf 100644 (file)
@@ -37,7 +37,28 @@ target_triplet = @target@
 subdir = cmd
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 831c330da015883ca8b2bf2467af908161c10762..b14d55171a09cf7522e3884639493535fdfd2291 100644 (file)
@@ -48,7 +48,28 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 sbin_PROGRAMS = splat$(EXEEXT)
 subdir = cmd/splat
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 87c063c9626d350d5e6cc18bacf0b791b2c01e8b..9d172744ca8423fecd4b8b06af38a58c31528a96 100644 (file)
@@ -38,7 +38,28 @@ target_triplet = @target@
 subdir = cmd/splslab
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
diff --git a/config/compile b/config/compile
new file mode 100755 (executable)
index 0000000..2ab71e4
--- /dev/null
@@ -0,0 +1,348 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2016-01-11.22; # UTC
+
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv/,$2, in
+       *,$file_conv,*)
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin/*)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -l*)
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
+       -L*)
+         func_cl_dashL "${1#-L}"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
+       eat=1
+       case $2 in
+         *.o | *.obj)
+           ofile=$2
+           ;;
+         *)
+           set x "$@" -o "$2"
+           shift
+           ;;
+       esac
+       ;;
+      *.c)
+       cfile=$1
+       set x "$@" "$1"
+       shift
+       ;;
+      *)
+       set x "$@" "$1"
+       shift
+       ;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config/kernel-ctl-table-name.m4 b/config/kernel-ctl-table-name.m4
new file mode 100644 (file)
index 0000000..8dd2e77
--- /dev/null
@@ -0,0 +1,18 @@
+dnl #
+dnl # 2.6.33 API change,
+dnl # Removed .ctl_name from struct ctl_table.
+dnl #
+AC_DEFUN([SPL_AC_CTL_NAME], [
+       AC_MSG_CHECKING([whether struct ctl_table has ctl_name])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/sysctl.h>
+       ],[
+               struct ctl_table ctl __attribute__ ((unused));
+               ctl.ctl_name = 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_CTL_NAME, 1, [struct ctl_table has ctl_name])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-fallocate.m4 b/config/kernel-fallocate.m4
new file mode 100644 (file)
index 0000000..b8c82f4
--- /dev/null
@@ -0,0 +1,68 @@
+dnl #
+dnl # Linux 2.6.38 - 3.x API
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_FILE_FALLOCATE], [
+       AC_MSG_CHECKING([whether fops->fallocate() exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+               struct file_operations fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+dnl #
+dnl # Linux 2.6.x - 2.6.37 API
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_INODE_FALLOCATE], [
+       AC_MSG_CHECKING([whether iops->fallocate() exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL;
+               struct inode_operations fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # PaX Linux 2.6.38 - 3.x API
+dnl #
+AC_DEFUN([SPL_AC_PAX_KERNEL_FILE_FALLOCATE], [
+       AC_MSG_CHECKING([whether fops->fallocate() exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+               struct file_operations_no_const fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # The fallocate callback was moved from the inode_operations
+dnl # structure to the file_operations structure.
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_FALLOCATE], [
+       SPL_AC_KERNEL_FILE_FALLOCATE
+       SPL_AC_KERNEL_INODE_FALLOCATE
+       SPL_AC_PAX_KERNEL_FILE_FALLOCATE
+])
diff --git a/config/kernel-group-info.m4 b/config/kernel-group-info.m4
new file mode 100644 (file)
index 0000000..4db2bba
--- /dev/null
@@ -0,0 +1,21 @@
+dnl #
+dnl # 4.9 API change
+dnl # group_info changed from 2d array via >blocks to 1d array via ->gid
+dnl #
+AC_DEFUN([SPL_AC_GROUP_INFO_GID], [
+       AC_MSG_CHECKING([whether group_info->gid exists])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/cred.h>
+       ],[
+               struct group_info *gi = groups_alloc(1);
+               gi->gid[0] = KGIDT_INIT(0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_GROUP_INFO_GID, 1, [group_info->gid exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-inode-lock.m4 b/config/kernel-inode-lock.m4
new file mode 100644 (file)
index 0000000..2cc06a5
--- /dev/null
@@ -0,0 +1,23 @@
+dnl #
+dnl # 4.7 API change
+dnl # i_mutex is changed to i_rwsem. Instead of directly using
+dnl # i_mutex/i_rwsem, we should use inode_lock() and inode_lock_shared()
+dnl # We test inode_lock_shared because inode_lock is introduced earlier.
+dnl #
+AC_DEFUN([SPL_AC_INODE_LOCK], [
+       AC_MSG_CHECKING([whether inode_lock_shared() exists])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct inode *inode = NULL;
+               inode_lock_shared(inode);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_INODE_LOCK_SHARED, 1, [yes])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-kmem-cache.m4 b/config/kernel-kmem-cache.m4
new file mode 100644 (file)
index 0000000..50a7fdb
--- /dev/null
@@ -0,0 +1,72 @@
+dnl #
+dnl # 2.6.35 API change,
+dnl # The cachep->gfpflags member was renamed cachep->allocflags.  These are
+dnl # private allocation flags which are applied when allocating a new slab
+dnl # in kmem_getpages().  Unfortunately there is no public API for setting
+dnl # non-default flags.
+dnl #
+AC_DEFUN([SPL_AC_KMEM_CACHE_ALLOCFLAGS], [
+       AC_MSG_CHECKING([whether struct kmem_cache has allocflags])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/slab.h>
+       ],[
+               struct kmem_cache cachep __attribute__ ((unused));
+               cachep.allocflags = GFP_KERNEL;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_KMEM_CACHE_ALLOCFLAGS, 1,
+                       [struct kmem_cache has allocflags])
+       ],[
+               AC_MSG_RESULT(no)
+
+               AC_MSG_CHECKING([whether struct kmem_cache has gfpflags])
+               SPL_LINUX_TRY_COMPILE([
+                       #include <linux/slab.h>
+               ],[
+                       struct kmem_cache cachep __attribute__ ((unused));
+                       cachep.gfpflags = GFP_KERNEL;
+               ],[
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_KMEM_CACHE_GFPFLAGS, 1,
+                               [struct kmem_cache has gfpflags])
+               ],[
+                       AC_MSG_RESULT(no)
+               ])
+       ])
+])
+
+dnl #
+dnl # grsecurity API change,
+dnl # kmem_cache_create() with SLAB_USERCOPY flag replaced by
+dnl # kmem_cache_create_usercopy().
+dnl #
+AC_DEFUN([SPL_AC_KMEM_CACHE_CREATE_USERCOPY], [
+       AC_MSG_CHECKING([whether kmem_cache_create_usercopy() exists])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/slab.h>
+               static void ctor(void *foo)
+               {
+                       // fake ctor
+               }
+       ],[
+               struct kmem_cache *skc_linux_cache;
+               const char *name = "test";
+               size_t size = 4096;
+               size_t align = 8;
+               unsigned long flags = 0;
+               size_t useroffset = 0;
+               size_t usersize = size - useroffset;
+
+               skc_linux_cache = kmem_cache_create_usercopy(
+                       name, size, align, flags, useroffset, usersize, ctor);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_KMEM_CACHE_CREATE_USERCOPY, 1,
+                               [kmem_cache_create_usercopy() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-kuidgid.m4 b/config/kernel-kuidgid.m4
new file mode 100644 (file)
index 0000000..47d1937
--- /dev/null
@@ -0,0 +1,28 @@
+dnl #
+dnl # User namespaces, use kuid_t in place of uid_t
+dnl # where available. Not strictly a user namespaces thing
+dnl # but it should prevent surprises
+dnl #
+AC_DEFUN([SPL_AC_KUIDGID_T], [
+       AC_MSG_CHECKING([whether kuid_t/kgid_t is available])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/uidgid.h>
+       ], [
+               kuid_t userid = KUIDT_INIT(0);
+               kgid_t groupid = KGIDT_INIT(0);
+       ],[
+               SPL_LINUX_TRY_COMPILE([
+                       #include <linux/uidgid.h>
+               ], [
+                       kuid_t userid = 0;
+                       kgid_t groupid = 0;
+               ],[
+                       AC_MSG_RESULT(yes; optional)
+               ],[
+                       AC_MSG_RESULT(yes; mandatory)
+                       AC_DEFINE(HAVE_KUIDGID_T, 1, [kuid_t/kgid_t in use])
+               ])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-pde-data.m4 b/config/kernel-pde-data.m4
new file mode 100644 (file)
index 0000000..6aa5765
--- /dev/null
@@ -0,0 +1,17 @@
+dnl #
+dnl # 3.10 API change,
+dnl # PDE is replaced by PDE_DATA
+dnl #
+AC_DEFUN([SPL_AC_PDE_DATA], [
+       AC_MSG_CHECKING([whether PDE_DATA() is available])
+       SPL_LINUX_TRY_COMPILE_SYMBOL([
+               #include <linux/proc_fs.h>
+       ], [
+               PDE_DATA(NULL);
+       ], [PDE_DATA], [], [
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_PDE_DATA, 1, [yes])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-rw.m4 b/config/kernel-rw.m4
new file mode 100644 (file)
index 0000000..23c14b7
--- /dev/null
@@ -0,0 +1,57 @@
+dnl #
+dnl # 4.14 API change
+dnl # kernel_write() which was introduced in 3.9 was updated to take
+dnl # the offset as a pointer which is needed by vn_rdwr().
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_WRITE], [
+       AC_MSG_CHECKING([whether kernel_write() takes loff_t pointer])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct file *file = NULL;
+               const void *buf = NULL;
+               size_t count = 0;
+               loff_t *pos = NULL;
+               ssize_t ret;
+
+               ret = kernel_write(file, buf, count, pos);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_KERNEL_WRITE_PPOS, 1,
+                   [kernel_write() take loff_t pointer])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
+
+dnl #
+dnl # 4.14 API change
+dnl # kernel_read() which has existed for forever was updated to take
+dnl # the offset as a pointer which is needed by vn_rdwr().
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_READ], [
+       AC_MSG_CHECKING([whether kernel_read() takes loff_t pointer])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct file *file = NULL;
+               void *buf = NULL;
+               size_t count = 0;
+               loff_t *pos = NULL;
+               ssize_t ret;
+
+               ret = kernel_read(file, buf, count, pos);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_KERNEL_READ_PPOS, 1,
+                   [kernel_read() take loff_t pointer])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-rwsem.m4 b/config/kernel-rwsem.m4
new file mode 100644 (file)
index 0000000..aee20ae
--- /dev/null
@@ -0,0 +1,75 @@
+dnl #
+dnl # 3.1 API Change
+dnl #
+dnl # The rw_semaphore.wait_lock member was changed from spinlock_t to
+dnl # raw_spinlock_t at commit ddb6c9b58a19edcfac93ac670b066c836ff729f1.
+dnl #
+AC_DEFUN([SPL_AC_RWSEM_SPINLOCK_IS_RAW], [
+       AC_MSG_CHECKING([whether struct rw_semaphore member wait_lock is raw])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/rwsem.h>
+       ],[
+               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
+               raw_spinlock_t dummy_lock __attribute__ ((unused)) =
+                   __RAW_SPIN_LOCK_INITIALIZER(dummy_lock);
+               dummy_semaphore.wait_lock = dummy_lock;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(RWSEM_SPINLOCK_IS_RAW, 1,
+               [struct rw_semaphore member wait_lock is raw_spinlock_t])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
+
+dnl #
+dnl # 3.16 API Change
+dnl #
+dnl # rwsem-spinlock "->activity" changed to "->count"
+dnl #
+AC_DEFUN([SPL_AC_RWSEM_ACTIVITY], [
+       AC_MSG_CHECKING([whether struct rw_semaphore has member activity])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/rwsem.h>
+       ],[
+               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
+               dummy_semaphore.activity = 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_RWSEM_ACTIVITY, 1,
+               [struct rw_semaphore has member activity])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
+
+dnl #
+dnl # 4.8 API Change
+dnl #
+dnl # rwsem "->count" changed to atomic_long_t type
+dnl #
+AC_DEFUN([SPL_AC_RWSEM_ATOMIC_LONG_COUNT], [
+       AC_MSG_CHECKING(
+       [whether struct rw_semaphore has atomic_long_t member count])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/rwsem.h>
+       ],[
+               DECLARE_RWSEM(dummy_semaphore);
+               (void) atomic_long_read(&dummy_semaphore.count);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_RWSEM_ATOMIC_LONG_COUNT, 1,
+               [struct rw_semaphore has atomic_long_t member count])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-sched.m4 b/config/kernel-sched.m4
new file mode 100644 (file)
index 0000000..5ae2167
--- /dev/null
@@ -0,0 +1,56 @@
+dnl #
+dnl # 3.9 API change,
+dnl # Moved things from linux/sched.h to linux/sched/rt.h
+dnl #
+AC_DEFUN([SPL_AC_SCHED_RT_HEADER],
+       [AC_MSG_CHECKING([whether header linux/sched/rt.h exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/sched.h>
+               #include <linux/sched/rt.h>
+       ],[
+               return 0;
+       ],[
+               AC_DEFINE(HAVE_SCHED_RT_HEADER, 1, [linux/sched/rt.h exists])
+               AC_MSG_RESULT(yes)
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # 4.11 API change,
+dnl # Moved things from linux/sched.h to linux/sched/signal.h
+dnl #
+AC_DEFUN([SPL_AC_SCHED_SIGNAL_HEADER],
+       [AC_MSG_CHECKING([whether header linux/sched/signal.h exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/sched.h>
+               #include <linux/sched/signal.h>
+       ],[
+               return 0;
+       ],[
+               AC_DEFINE(HAVE_SCHED_SIGNAL_HEADER, 1, [linux/sched/signal.h exists])
+               AC_MSG_RESULT(yes)
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+dnl #
+dnl # 3.19 API change
+dnl # The io_schedule_timeout() function is present in all 2.6.32 kernels
+dnl # but it was not exported until Linux 3.19.  The RHEL 7.x kernels which
+dnl # are based on a 3.10 kernel do export this symbol.
+dnl #
+AC_DEFUN([SPL_AC_IO_SCHEDULE_TIMEOUT], [
+       AC_MSG_CHECKING([whether io_schedule_timeout() is available])
+       SPL_LINUX_TRY_COMPILE_SYMBOL([
+               #include <linux/sched.h>
+       ], [
+               (void) io_schedule_timeout(1);
+       ], [io_schedule_timeout], [], [
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IO_SCHEDULE_TIMEOUT, 1, [yes])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-set-fs-pwd.m4 b/config/kernel-set-fs-pwd.m4
new file mode 100644 (file)
index 0000000..849e7e6
--- /dev/null
@@ -0,0 +1,39 @@
+dnl #
+dnl # 3.9 API change
+dnl # set_fs_pwd takes const struct path *
+dnl #
+AC_DEFUN([SPL_AC_SET_FS_PWD_WITH_CONST],
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       [AC_MSG_CHECKING([whether set_fs_pwd() requires const struct path *])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/spinlock.h>
+               #include <linux/fs_struct.h>
+               #include <linux/path.h>
+               void (*const set_fs_pwd_func)
+                       (struct fs_struct *, const struct path *)
+                       = set_fs_pwd;
+       ],[
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SET_FS_PWD_WITH_CONST, 1,
+                       [set_fs_pwd() needs const path *])
+       ],[
+               SPL_LINUX_TRY_COMPILE([
+                       #include <linux/spinlock.h>
+                       #include <linux/fs_struct.h>
+                       #include <linux/path.h>
+                       void (*const set_fs_pwd_func)
+                               (struct fs_struct *, struct path *)
+                               = set_fs_pwd;
+               ],[
+                       return 0;
+               ],[
+                       AC_MSG_RESULT(no)
+               ],[
+                       AC_MSG_ERROR(unknown)
+               ])
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-shrinker.m4 b/config/kernel-shrinker.m4
new file mode 100644 (file)
index 0000000..6fc9b54
--- /dev/null
@@ -0,0 +1,125 @@
+AC_DEFUN([SPL_AC_SHRINKER_CALLBACK],[
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       dnl #
+       dnl # 2.6.23 to 2.6.34 API change
+       dnl # ->shrink(int nr_to_scan, gfp_t gfp_mask)
+       dnl #
+       AC_MSG_CHECKING([whether old 2-argument shrinker exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/mm.h>
+
+               int shrinker_cb(int nr_to_scan, gfp_t gfp_mask);
+       ],[
+               struct shrinker cache_shrinker = {
+                       .shrink = shrinker_cb,
+                       .seeks = DEFAULT_SEEKS,
+               };
+               register_shrinker(&cache_shrinker);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_2ARGS_OLD_SHRINKER_CALLBACK, 1,
+                       [old shrinker callback wants 2 args])
+       ],[
+               AC_MSG_RESULT(no)
+               dnl #
+               dnl # 2.6.35 - 2.6.39 API change
+               dnl # ->shrink(struct shrinker *,
+               dnl #          int nr_to_scan, gfp_t gfp_mask)
+               dnl #
+               AC_MSG_CHECKING([whether old 3-argument shrinker exists])
+               SPL_LINUX_TRY_COMPILE([
+                       #include <linux/mm.h>
+
+                       int shrinker_cb(struct shrinker *, int nr_to_scan,
+                                       gfp_t gfp_mask);
+               ],[
+                       struct shrinker cache_shrinker = {
+                               .shrink = shrinker_cb,
+                               .seeks = DEFAULT_SEEKS,
+                       };
+                       register_shrinker(&cache_shrinker);
+               ],[
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_3ARGS_SHRINKER_CALLBACK, 1,
+                               [old shrinker callback wants 3 args])
+               ],[
+                       AC_MSG_RESULT(no)
+                       dnl #
+                       dnl # 3.0 - 3.11 API change
+                       dnl # ->shrink(struct shrinker *,
+                       dnl #          struct shrink_control *sc)
+                       dnl #
+                       AC_MSG_CHECKING(
+                               [whether new 2-argument shrinker exists])
+                       SPL_LINUX_TRY_COMPILE([
+                               #include <linux/mm.h>
+
+                               int shrinker_cb(struct shrinker *,
+                                               struct shrink_control *sc);
+                       ],[
+                               struct shrinker cache_shrinker = {
+                                       .shrink = shrinker_cb,
+                                       .seeks = DEFAULT_SEEKS,
+                               };
+                               register_shrinker(&cache_shrinker);
+                       ],[
+                               AC_MSG_RESULT(yes)
+                               AC_DEFINE(HAVE_2ARGS_NEW_SHRINKER_CALLBACK, 1,
+                                       [new shrinker callback wants 2 args])
+                       ],[
+                               AC_MSG_RESULT(no)
+                               dnl #
+                               dnl # 3.12 API change,
+                               dnl # ->shrink() is logically split in to
+                               dnl # ->count_objects() and ->scan_objects()
+                               dnl #
+                               AC_MSG_CHECKING(
+                                   [whether ->count_objects callback exists])
+                               SPL_LINUX_TRY_COMPILE([
+                                       #include <linux/mm.h>
+
+                                       unsigned long shrinker_cb(
+                                               struct shrinker *,
+                                               struct shrink_control *sc);
+                               ],[
+                                       struct shrinker cache_shrinker = {
+                                               .count_objects = shrinker_cb,
+                                               .scan_objects = shrinker_cb,
+                                               .seeks = DEFAULT_SEEKS,
+                                       };
+                                       register_shrinker(&cache_shrinker);
+                               ],[
+                                       AC_MSG_RESULT(yes)
+                                       AC_DEFINE(HAVE_SPLIT_SHRINKER_CALLBACK,
+                                               1, [->count_objects exists])
+                               ],[
+                                       AC_MSG_ERROR(error)
+                               ])
+                       ])
+               ])
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
+
+dnl #
+dnl # 2.6.39 API change,
+dnl # Shrinker adjust to use common shrink_control structure.
+dnl #
+AC_DEFUN([SPL_AC_SHRINK_CONTROL_STRUCT], [
+       AC_MSG_CHECKING([whether struct shrink_control exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/mm.h>
+       ],[
+               struct shrink_control sc __attribute__ ((unused));
+
+               sc.nr_to_scan = 0;
+               sc.gfp_mask = GFP_KERNEL;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SHRINK_CONTROL_STRUCT, 1,
+                       [struct shrink_control exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-spinlock.m4 b/config/kernel-spinlock.m4
new file mode 100644 (file)
index 0000000..136262d
--- /dev/null
@@ -0,0 +1,24 @@
+dnl #
+dnl # 2.6.36 API change,
+dnl # The 'struct fs_struct->lock' was changed from a rwlock_t to
+dnl # a spinlock_t to improve the fastpath performance.
+dnl #
+AC_DEFUN([SPL_AC_FS_STRUCT_SPINLOCK], [
+       AC_MSG_CHECKING([whether struct fs_struct uses spinlock_t])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/sched.h>
+               #include <linux/fs_struct.h>
+       ],[
+               static struct fs_struct fs;
+               spin_lock_init(&fs.lock);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_FS_STRUCT_SPINLOCK, 1,
+                         [struct fs_struct uses spinlock_t])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-timer.m4 b/config/kernel-timer.m4
new file mode 100644 (file)
index 0000000..93b5158
--- /dev/null
@@ -0,0 +1,32 @@
+dnl #
+dnl # 4.15 API change
+dnl # https://lkml.org/lkml/2017/11/25/90
+dnl # Check if timer_list.func get passed a timer_list or an unsigned long
+dnl # (older kernels).  Also sanity check the from_timer() and timer_setup()
+dnl # macros are available as well, since they will be used in the same newer
+dnl # kernels that support the new timer_list.func signature.
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST], [
+       AC_MSG_CHECKING([whether timer_list.function gets a timer_list])
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/timer.h>
+               void task_expire(struct timer_list *tl) {}
+       ],[
+               #ifndef from_timer
+               #error "No from_timer() macro"
+               #endif
+
+               struct timer_list timer;
+               timer.function = task_expire;
+               timer_setup(&timer, NULL, 0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST, 1,
+                   [timer_list.function gets a timer_list])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/config/kernel-trim-unused-symbols.m4 b/config/kernel-trim-unused-symbols.m4
new file mode 100644 (file)
index 0000000..d1ac2f3
--- /dev/null
@@ -0,0 +1,19 @@
+dnl #
+dnl # config trim unused symbols,
+dnl # Verify the kernel has CONFIG_TRIM_UNUSED_KSYMS DISABLED.
+dnl #
+AC_DEFUN([SPL_AC_CONFIG_TRIM_UNUSED_KSYMS], [
+       AC_MSG_CHECKING([whether CONFIG_TRIM_UNUSED_KSYM is disabled])
+       SPL_LINUX_TRY_COMPILE([
+               #if defined(CONFIG_TRIM_UNUSED_KSYMS)
+               #error CONFIG_TRIM_UNUSED_KSYMS not defined
+               #endif
+       ],[ ],[
+               AC_MSG_RESULT([yes])
+       ],[
+               AC_MSG_RESULT([no])
+               AC_MSG_ERROR([
+       *** This kernel has unused symbols trimming enabled, please disable.
+       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set.])
+       ])
+])
diff --git a/config/kernel-truncate-range.m4 b/config/kernel-truncate-range.m4
new file mode 100644 (file)
index 0000000..4b1600b
--- /dev/null
@@ -0,0 +1,19 @@
+dnl #
+dnl # 3.5 API change,
+dnl # inode_operations.truncate_range removed
+dnl #
+AC_DEFUN([SPL_AC_INODE_TRUNCATE_RANGE], [
+       AC_MSG_CHECKING([whether truncate_range() inode operation is available])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               struct inode_operations ops;
+               ops.truncate_range = NULL;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_INODE_TRUNCATE_RANGE, 1,
+                       [truncate_range() inode operation is available])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-urange-sleep.m4 b/config/kernel-urange-sleep.m4
new file mode 100644 (file)
index 0000000..85beca6
--- /dev/null
@@ -0,0 +1,21 @@
+dnl #
+dnl # 2.6.36 API compatibility.
+dnl # Added usleep_range timer.
+dnl # usleep_range is a finer precision implementation of msleep
+dnl # designed to be a drop-in replacement for udelay where a precise
+dnl # sleep / busy-wait is unnecessary.
+dnl #
+AC_DEFUN([SPL_AC_USLEEP_RANGE], [
+       AC_MSG_CHECKING([whether usleep_range() is available])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/delay.h>
+       ],[
+               usleep_range(0, 0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_USLEEP_RANGE, 1,
+                         [usleep_range is available])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-vfs-fsync.m4 b/config/kernel-vfs-fsync.m4
new file mode 100644 (file)
index 0000000..3c42bf1
--- /dev/null
@@ -0,0 +1,17 @@
+dnl #
+dnl # 2.6.35 API change,
+dnl # Unused 'struct dentry *' removed from vfs_fsync() prototype.
+dnl #
+AC_DEFUN([SPL_AC_2ARGS_VFS_FSYNC], [
+       AC_MSG_CHECKING([whether vfs_fsync() wants 2 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_fsync(NULL, 0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_2ARGS_VFS_FSYNC, 1, [vfs_fsync() wants 2 args])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-vfs-getattr.m4 b/config/kernel-vfs-getattr.m4
new file mode 100644 (file)
index 0000000..7772cb5
--- /dev/null
@@ -0,0 +1,62 @@
+dnl #
+dnl # 4.11 API, a528d35e@torvalds/linux
+dnl # vfs_getattr(const struct path *p, struct kstat *s, u32 m, unsigned int f)
+dnl #
+AC_DEFUN([SPL_AC_4ARGS_VFS_GETATTR], [
+       AC_MSG_CHECKING([whether vfs_getattr() wants 4 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_getattr((const struct path *)NULL,
+                       (struct kstat *)NULL,
+                       (u32)0,
+                       (unsigned int)0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_4ARGS_VFS_GETATTR, 1,
+                 [vfs_getattr wants 4 args])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # 3.9 API
+dnl # vfs_getattr(struct path *p, struct kstat *s)
+dnl #
+AC_DEFUN([SPL_AC_2ARGS_VFS_GETATTR], [
+       AC_MSG_CHECKING([whether vfs_getattr() wants 2 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_getattr((struct path *) NULL,
+                       (struct kstat *)NULL);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_2ARGS_VFS_GETATTR, 1,
+                         [vfs_getattr wants 2 args])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # <3.9 API
+dnl # vfs_getattr(struct vfsmount *v, struct dentry *d, struct kstat *k)
+dnl #
+AC_DEFUN([SPL_AC_3ARGS_VFS_GETATTR], [
+       AC_MSG_CHECKING([whether vfs_getattr() wants 3 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_getattr((struct vfsmount *)NULL,
+                       (struct dentry *)NULL,
+                       (struct kstat *)NULL);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_3ARGS_VFS_GETATTR, 1,
+                 [vfs_getattr wants 3 args])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-wait.m4 b/config/kernel-wait.m4
new file mode 100644 (file)
index 0000000..5f718a1
--- /dev/null
@@ -0,0 +1,76 @@
+dnl #
+dnl # 3.17 API change,
+dnl # wait_on_bit() no longer requires an action argument. The former
+dnl # "wait_on_bit" interface required an 'action' function to be provided
+dnl # which does the actual waiting. There were over 20 such functions in the
+dnl # kernel, many of them identical, though most cases can be satisfied by one
+dnl # of just two functions: one which uses io_schedule() and one which just
+dnl # uses schedule().  This API change was made to consolidate all of those
+dnl # redundant wait functions.
+dnl #
+AC_DEFUN([SPL_AC_WAIT_ON_BIT], [
+       AC_MSG_CHECKING([whether wait_on_bit() takes an action])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/wait.h>
+       ],[
+               int (*action)(void *) = NULL;
+               wait_on_bit(NULL, 0, action, 0);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_WAIT_ON_BIT_ACTION, 1, [yes])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+dnl #
+dnl # 4.13 API change
+dnl # Renamed struct wait_queue -> struct wait_queue_entry.
+dnl #
+AC_DEFUN([SPL_AC_WAIT_QUEUE_ENTRY_T], [
+       AC_MSG_CHECKING([whether wait_queue_entry_t exists])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/wait.h>
+       ],[
+               wait_queue_entry_t *entry __attribute__ ((unused));
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_WAIT_QUEUE_ENTRY_T, 1,
+                   [wait_queue_entry_t exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
+dnl # 4.13 API change
+dnl # Renamed wait_queue_head::task_list -> wait_queue_head::head
+dnl # Renamed wait_queue_entry::task_list -> wait_queue_entry::entry
+dnl #
+AC_DEFUN([SPL_AC_WAIT_QUEUE_HEAD_ENTRY], [
+       AC_MSG_CHECKING([whether wq_head->head and wq_entry->entry exist])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/wait.h>
+
+               #ifdef HAVE_WAIT_QUEUE_ENTRY_T
+               typedef wait_queue_head_t       spl_wait_queue_head_t;
+               typedef wait_queue_entry_t      spl_wait_queue_entry_t;
+               #else
+               typedef wait_queue_head_t       spl_wait_queue_head_t;
+               typedef wait_queue_t            spl_wait_queue_entry_t;
+               #endif
+       ],[
+               spl_wait_queue_head_t wq_head;
+               spl_wait_queue_entry_t wq_entry;
+               struct list_head *head __attribute__ ((unused));
+               struct list_head *entry __attribute__ ((unused));
+
+               head = &wq_head.head;
+               entry = &wq_entry.entry;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_WAIT_QUEUE_HEAD_ENTRY, 1,
+                   [wq_head->head and wq_entry->entry exist])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
diff --git a/config/kernel-zlib.m4 b/config/kernel-zlib.m4
new file mode 100644 (file)
index 0000000..bb23646
--- /dev/null
@@ -0,0 +1,63 @@
+dnl #
+dnl # zlib inflate compat,
+dnl # Verify the kernel has CONFIG_ZLIB_INFLATE support enabled.
+dnl #
+AC_DEFUN([SPL_AC_CONFIG_ZLIB_INFLATE], [
+       AC_MSG_CHECKING([whether CONFIG_ZLIB_INFLATE is defined])
+       SPL_LINUX_TRY_COMPILE([
+               #if !defined(CONFIG_ZLIB_INFLATE) && \
+                   !defined(CONFIG_ZLIB_INFLATE_MODULE)
+               #error CONFIG_ZLIB_INFLATE not defined
+               #endif
+       ],[ ],[
+               AC_MSG_RESULT([yes])
+       ],[
+               AC_MSG_RESULT([no])
+               AC_MSG_ERROR([
+       *** This kernel does not include the required zlib inflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set.])
+       ])
+])
+
+dnl #
+dnl # zlib deflate compat,
+dnl # Verify the kernel has CONFIG_ZLIB_DEFLATE support enabled.
+dnl #
+AC_DEFUN([SPL_AC_CONFIG_ZLIB_DEFLATE], [
+       AC_MSG_CHECKING([whether CONFIG_ZLIB_DEFLATE is defined])
+       SPL_LINUX_TRY_COMPILE([
+               #if !defined(CONFIG_ZLIB_DEFLATE) && \
+                   !defined(CONFIG_ZLIB_DEFLATE_MODULE)
+               #error CONFIG_ZLIB_DEFLATE not defined
+               #endif
+       ],[ ],[
+               AC_MSG_RESULT([yes])
+       ],[
+               AC_MSG_RESULT([no])
+               AC_MSG_ERROR([
+       *** This kernel does not include the required zlib deflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set.])
+       ])
+])
+
+dnl #
+dnl # 2.6.39 API compat,
+dnl # The function zlib_deflate_workspacesize() now take 2 arguments.
+dnl # This was done to avoid always having to allocate the maximum size
+dnl # workspace (268K).  The caller can now specific the windowBits and
+dnl # memLevel compression parameters to get a smaller workspace.
+dnl #
+AC_DEFUN([SPL_AC_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE],
+       [AC_MSG_CHECKING([whether zlib_deflate_workspacesize() wants 2 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/zlib.h>
+       ],[
+               return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE, 1,
+                         [zlib_deflate_workspacesize() wants 2 args])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
index 25013b5b15c9617d18491f2648960084559e3433..9c97e64f910b56a0f1cee472f0c99ee934defbd9 100644 (file)
@@ -27,8 +27,6 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
        SPL_AC_CONFIG_TRIM_UNUSED_KSYMS
        SPL_AC_PDE_DATA
        SPL_AC_SET_FS_PWD_WITH_CONST
-       SPL_AC_2ARGS_VFS_UNLINK
-       SPL_AC_4ARGS_VFS_RENAME
        SPL_AC_2ARGS_VFS_FSYNC
        SPL_AC_INODE_TRUNCATE_RANGE
        SPL_AC_FS_STRUCT_SPINLOCK
@@ -54,6 +52,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
        SPL_AC_KMEM_CACHE_CREATE_USERCOPY
        SPL_AC_WAIT_QUEUE_ENTRY_T
        SPL_AC_WAIT_QUEUE_HEAD_ENTRY
+       SPL_AC_IO_SCHEDULE_TIMEOUT
        SPL_AC_KERNEL_WRITE
        SPL_AC_KERNEL_READ
        SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST
@@ -232,6 +231,7 @@ AC_DEFUN([SPL_AC_RPM], [
        RPM_DEFINE_COMMON='--define "$(DEBUG_SPL) 1" --define "$(DEBUG_KMEM) 1" --define "$(DEBUG_KMEM_TRACKING) 1"'
        RPM_DEFINE_UTIL=
        RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"'
+       RPM_DEFINE_KMOD+=' --define "_wrong_version_format_terminate_build 0"'
        RPM_DEFINE_DKMS=
 
        SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
@@ -754,1038 +754,3 @@ AC_DEFUN([SPL_AC_ATOMIC_SPINLOCK], [
        AC_MSG_CHECKING([whether kernel defines atomic64_t])
        AC_MSG_RESULT([$have_atomic64_t])
 ])
-
-AC_DEFUN([SPL_AC_SHRINKER_CALLBACK],[
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       dnl #
-       dnl # 2.6.23 to 2.6.34 API change
-       dnl # ->shrink(int nr_to_scan, gfp_t gfp_mask)
-       dnl #
-       AC_MSG_CHECKING([whether old 2-argument shrinker exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/mm.h>
-
-               int shrinker_cb(int nr_to_scan, gfp_t gfp_mask);
-       ],[
-               struct shrinker cache_shrinker = {
-                       .shrink = shrinker_cb,
-                       .seeks = DEFAULT_SEEKS,
-               };
-               register_shrinker(&cache_shrinker);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_2ARGS_OLD_SHRINKER_CALLBACK, 1,
-                       [old shrinker callback wants 2 args])
-       ],[
-               AC_MSG_RESULT(no)
-               dnl #
-               dnl # 2.6.35 - 2.6.39 API change
-               dnl # ->shrink(struct shrinker *,
-               dnl #          int nr_to_scan, gfp_t gfp_mask)
-               dnl #
-               AC_MSG_CHECKING([whether old 3-argument shrinker exists])
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/mm.h>
-
-                       int shrinker_cb(struct shrinker *, int nr_to_scan,
-                                       gfp_t gfp_mask);
-               ],[
-                       struct shrinker cache_shrinker = {
-                               .shrink = shrinker_cb,
-                               .seeks = DEFAULT_SEEKS,
-                       };
-                       register_shrinker(&cache_shrinker);
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_3ARGS_SHRINKER_CALLBACK, 1,
-                               [old shrinker callback wants 3 args])
-               ],[
-                       AC_MSG_RESULT(no)
-                       dnl #
-                       dnl # 3.0 - 3.11 API change
-                       dnl # ->shrink(struct shrinker *,
-                       dnl #          struct shrink_control *sc)
-                       dnl #
-                       AC_MSG_CHECKING(
-                               [whether new 2-argument shrinker exists])
-                       SPL_LINUX_TRY_COMPILE([
-                               #include <linux/mm.h>
-
-                               int shrinker_cb(struct shrinker *,
-                                               struct shrink_control *sc);
-                       ],[
-                               struct shrinker cache_shrinker = {
-                                       .shrink = shrinker_cb,
-                                       .seeks = DEFAULT_SEEKS,
-                               };
-                               register_shrinker(&cache_shrinker);
-                       ],[
-                               AC_MSG_RESULT(yes)
-                               AC_DEFINE(HAVE_2ARGS_NEW_SHRINKER_CALLBACK, 1,
-                                       [new shrinker callback wants 2 args])
-                       ],[
-                               AC_MSG_RESULT(no)
-                               dnl #
-                               dnl # 3.12 API change,
-                               dnl # ->shrink() is logically split in to
-                               dnl # ->count_objects() and ->scan_objects()
-                               dnl #
-                               AC_MSG_CHECKING(
-                                   [whether ->count_objects callback exists])
-                               SPL_LINUX_TRY_COMPILE([
-                                       #include <linux/mm.h>
-
-                                       unsigned long shrinker_cb(
-                                               struct shrinker *,
-                                               struct shrink_control *sc);
-                               ],[
-                                       struct shrinker cache_shrinker = {
-                                               .count_objects = shrinker_cb,
-                                               .scan_objects = shrinker_cb,
-                                               .seeks = DEFAULT_SEEKS,
-                                       };
-                                       register_shrinker(&cache_shrinker);
-                               ],[
-                                       AC_MSG_RESULT(yes)
-                                       AC_DEFINE(HAVE_SPLIT_SHRINKER_CALLBACK,
-                                               1, [->count_objects exists])
-                               ],[
-                                       AC_MSG_ERROR(error)
-                               ])
-                       ])
-               ])
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 2.6.33 API change,
-dnl # Removed .ctl_name from struct ctl_table.
-dnl #
-AC_DEFUN([SPL_AC_CTL_NAME], [
-       AC_MSG_CHECKING([whether struct ctl_table has ctl_name])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/sysctl.h>
-       ],[
-               struct ctl_table ctl __attribute__ ((unused));
-               ctl.ctl_name = 0;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_CTL_NAME, 1, [struct ctl_table has ctl_name])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 3.10 API change,
-dnl # PDE is replaced by PDE_DATA
-dnl #
-AC_DEFUN([SPL_AC_PDE_DATA], [
-       AC_MSG_CHECKING([whether PDE_DATA() is available])
-       SPL_LINUX_TRY_COMPILE_SYMBOL([
-               #include <linux/proc_fs.h>
-       ], [
-               PDE_DATA(NULL);
-       ], [PDE_DATA], [], [
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_PDE_DATA, 1, [yes])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 3.9 API change
-dnl # set_fs_pwd takes const struct path *
-dnl #
-AC_DEFUN([SPL_AC_SET_FS_PWD_WITH_CONST],
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       [AC_MSG_CHECKING([whether set_fs_pwd() requires const struct path *])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/spinlock.h>
-               #include <linux/fs_struct.h>
-               #include <linux/path.h>
-               void (*const set_fs_pwd_func)
-                       (struct fs_struct *, const struct path *)
-                       = set_fs_pwd;
-       ],[
-               return 0;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SET_FS_PWD_WITH_CONST, 1,
-                       [set_fs_pwd() needs const path *])
-       ],[
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/spinlock.h>
-                       #include <linux/fs_struct.h>
-                       #include <linux/path.h>
-                       void (*const set_fs_pwd_func)
-                               (struct fs_struct *, struct path *)
-                               = set_fs_pwd;
-               ],[
-                       return 0;
-               ],[
-                       AC_MSG_RESULT(no)
-               ],[
-                       AC_MSG_ERROR(unknown)
-               ])
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 3.13 API change
-dnl # vfs_unlink() updated to take a third delegated_inode argument.
-dnl #
-AC_DEFUN([SPL_AC_2ARGS_VFS_UNLINK],
-       [AC_MSG_CHECKING([whether vfs_unlink() wants 2 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_unlink((struct inode *) NULL, (struct dentry *) NULL);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_2ARGS_VFS_UNLINK, 1,
-                         [vfs_unlink() wants 2 args])
-       ],[
-               AC_MSG_RESULT(no)
-               dnl #
-               dnl # Linux 3.13 API change
-               dnl # Added delegated inode
-               dnl #
-               AC_MSG_CHECKING([whether vfs_unlink() wants 3 args])
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/fs.h>
-               ],[
-                       vfs_unlink((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_3ARGS_VFS_UNLINK, 1,
-                                 [vfs_unlink() wants 3 args])
-               ],[
-                       AC_MSG_ERROR(no)
-               ])
-
-       ])
-])
-
-dnl #
-dnl # 3.13 and 3.15 API changes
-dnl # Added delegated inode and flags argument.
-dnl #
-AC_DEFUN([SPL_AC_4ARGS_VFS_RENAME],
-       [AC_MSG_CHECKING([whether vfs_rename() wants 4 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_rename((struct inode *) NULL, (struct dentry *) NULL,
-                       (struct inode *) NULL, (struct dentry *) NULL);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_4ARGS_VFS_RENAME, 1,
-                         [vfs_rename() wants 4 args])
-       ],[
-               AC_MSG_RESULT(no)
-               dnl #
-               dnl # Linux 3.13 API change
-               dnl # Added delegated inode
-               dnl #
-               AC_MSG_CHECKING([whether vfs_rename() wants 5 args])
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/fs.h>
-               ],[
-                       vfs_rename((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_5ARGS_VFS_RENAME, 1,
-                                 [vfs_rename() wants 5 args])
-               ],[
-                       AC_MSG_RESULT(no)
-                       dnl #
-                       dnl # Linux 3.15 API change
-                       dnl # Added flags
-                       dnl #
-                       AC_MSG_CHECKING([whether vfs_rename() wants 6 args])
-                       SPL_LINUX_TRY_COMPILE([
-                               #include <linux/fs.h>
-                       ],[
-                               vfs_rename((struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode **) NULL,
-                                       (unsigned int) 0);
-                       ],[
-                               AC_MSG_RESULT(yes)
-                               AC_DEFINE(HAVE_6ARGS_VFS_RENAME, 1,
-                                         [vfs_rename() wants 6 args])
-                       ],[
-                               AC_MSG_ERROR(no)
-                       ])
-               ])
-       ])
-])
-
-dnl #
-dnl # 2.6.36 API change,
-dnl # The 'struct fs_struct->lock' was changed from a rwlock_t to
-dnl # a spinlock_t to improve the fastpath performance.
-dnl #
-AC_DEFUN([SPL_AC_FS_STRUCT_SPINLOCK], [
-       AC_MSG_CHECKING([whether struct fs_struct uses spinlock_t])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/sched.h>
-               #include <linux/fs_struct.h>
-       ],[
-               static struct fs_struct fs;
-               spin_lock_init(&fs.lock);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_FS_STRUCT_SPINLOCK, 1,
-                         [struct fs_struct uses spinlock_t])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # User namespaces, use kuid_t in place of uid_t
-dnl # where available. Not strictly a user namespaces thing
-dnl # but it should prevent surprises
-dnl #
-AC_DEFUN([SPL_AC_KUIDGID_T], [
-       AC_MSG_CHECKING([whether kuid_t/kgid_t is available])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/uidgid.h>
-       ], [
-               kuid_t userid = KUIDT_INIT(0);
-               kgid_t groupid = KGIDT_INIT(0);
-       ],[
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/uidgid.h>
-               ], [
-                       kuid_t userid = 0;
-                       kgid_t groupid = 0;
-               ],[
-                       AC_MSG_RESULT(yes; optional)
-               ],[
-                       AC_MSG_RESULT(yes; mandatory)
-                       AC_DEFINE(HAVE_KUIDGID_T, 1, [kuid_t/kgid_t in use])
-               ])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 2.6.35 API change,
-dnl # Unused 'struct dentry *' removed from vfs_fsync() prototype.
-dnl #
-AC_DEFUN([SPL_AC_2ARGS_VFS_FSYNC], [
-       AC_MSG_CHECKING([whether vfs_fsync() wants 2 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_fsync(NULL, 0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_2ARGS_VFS_FSYNC, 1, [vfs_fsync() wants 2 args])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 3.5 API change,
-dnl # inode_operations.truncate_range removed
-dnl #
-AC_DEFUN([SPL_AC_INODE_TRUNCATE_RANGE], [
-       AC_MSG_CHECKING([whether truncate_range() inode operation is available])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               struct inode_operations ops;
-               ops.truncate_range = NULL;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_INODE_TRUNCATE_RANGE, 1,
-                       [truncate_range() inode operation is available])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # Linux 2.6.38 - 3.x API
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_FILE_FALLOCATE], [
-       AC_MSG_CHECKING([whether fops->fallocate() exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
-               struct file_operations fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # Linux 2.6.x - 2.6.37 API
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_INODE_FALLOCATE], [
-       AC_MSG_CHECKING([whether iops->fallocate() exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL;
-               struct inode_operations fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # PaX Linux 2.6.38 - 3.x API
-dnl #
-AC_DEFUN([SPL_AC_PAX_KERNEL_FILE_FALLOCATE], [
-       AC_MSG_CHECKING([whether fops->fallocate() exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
-               struct file_operations_no_const fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # The fallocate callback was moved from the inode_operations
-dnl # structure to the file_operations structure.
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_FALLOCATE], [
-       SPL_AC_KERNEL_FILE_FALLOCATE
-       SPL_AC_KERNEL_INODE_FALLOCATE
-       SPL_AC_PAX_KERNEL_FILE_FALLOCATE
-])
-
-dnl #
-dnl # zlib inflate compat,
-dnl # Verify the kernel has CONFIG_ZLIB_INFLATE support enabled.
-dnl #
-AC_DEFUN([SPL_AC_CONFIG_ZLIB_INFLATE], [
-       AC_MSG_CHECKING([whether CONFIG_ZLIB_INFLATE is defined])
-       SPL_LINUX_TRY_COMPILE([
-               #if !defined(CONFIG_ZLIB_INFLATE) && \
-                   !defined(CONFIG_ZLIB_INFLATE_MODULE)
-               #error CONFIG_ZLIB_INFLATE not defined
-               #endif
-       ],[ ],[
-               AC_MSG_RESULT([yes])
-       ],[
-               AC_MSG_RESULT([no])
-               AC_MSG_ERROR([
-       *** This kernel does not include the required zlib inflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set.])
-       ])
-])
-
-dnl #
-dnl # zlib deflate compat,
-dnl # Verify the kernel has CONFIG_ZLIB_DEFLATE support enabled.
-dnl #
-AC_DEFUN([SPL_AC_CONFIG_ZLIB_DEFLATE], [
-       AC_MSG_CHECKING([whether CONFIG_ZLIB_DEFLATE is defined])
-       SPL_LINUX_TRY_COMPILE([
-               #if !defined(CONFIG_ZLIB_DEFLATE) && \
-                   !defined(CONFIG_ZLIB_DEFLATE_MODULE)
-               #error CONFIG_ZLIB_DEFLATE not defined
-               #endif
-       ],[ ],[
-               AC_MSG_RESULT([yes])
-       ],[
-               AC_MSG_RESULT([no])
-               AC_MSG_ERROR([
-       *** This kernel does not include the required zlib deflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set.])
-       ])
-])
-
-dnl #
-dnl # config trim unused symbols,
-dnl # Verify the kernel has CONFIG_TRIM_UNUSED_KSYMS DISABLED.
-dnl #
-AC_DEFUN([SPL_AC_CONFIG_TRIM_UNUSED_KSYMS], [
-       AC_MSG_CHECKING([whether CONFIG_TRIM_UNUSED_KSYM is disabled])
-       SPL_LINUX_TRY_COMPILE([
-               #if defined(CONFIG_TRIM_UNUSED_KSYMS)
-               #error CONFIG_TRIM_UNUSED_KSYMS not defined
-               #endif
-       ],[ ],[
-               AC_MSG_RESULT([yes])
-       ],[
-               AC_MSG_RESULT([no])
-               AC_MSG_ERROR([
-       *** This kernel has unused symbols trimming enabled, please disable.
-       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set.])
-       ])
-])
-
-dnl #
-dnl # 2.6.39 API compat,
-dnl # The function zlib_deflate_workspacesize() now take 2 arguments.
-dnl # This was done to avoid always having to allocate the maximum size
-dnl # workspace (268K).  The caller can now specific the windowBits and
-dnl # memLevel compression parameters to get a smaller workspace.
-dnl #
-AC_DEFUN([SPL_AC_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE],
-       [AC_MSG_CHECKING([whether zlib_deflate_workspacesize() wants 2 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/zlib.h>
-       ],[
-               return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE, 1,
-                         [zlib_deflate_workspacesize() wants 2 args])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 2.6.39 API change,
-dnl # Shrinker adjust to use common shrink_control structure.
-dnl #
-AC_DEFUN([SPL_AC_SHRINK_CONTROL_STRUCT], [
-       AC_MSG_CHECKING([whether struct shrink_control exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/mm.h>
-       ],[
-               struct shrink_control sc __attribute__ ((unused));
-
-               sc.nr_to_scan = 0;
-               sc.gfp_mask = GFP_KERNEL;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SHRINK_CONTROL_STRUCT, 1,
-                       [struct shrink_control exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 3.1 API Change
-dnl #
-dnl # The rw_semaphore.wait_lock member was changed from spinlock_t to
-dnl # raw_spinlock_t at commit ddb6c9b58a19edcfac93ac670b066c836ff729f1.
-dnl #
-AC_DEFUN([SPL_AC_RWSEM_SPINLOCK_IS_RAW], [
-       AC_MSG_CHECKING([whether struct rw_semaphore member wait_lock is raw])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/rwsem.h>
-       ],[
-               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
-               raw_spinlock_t dummy_lock __attribute__ ((unused)) =
-                   __RAW_SPIN_LOCK_INITIALIZER(dummy_lock);
-               dummy_semaphore.wait_lock = dummy_lock;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(RWSEM_SPINLOCK_IS_RAW, 1,
-               [struct rw_semaphore member wait_lock is raw_spinlock_t])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 3.16 API Change
-dnl #
-dnl # rwsem-spinlock "->activity" changed to "->count"
-dnl #
-AC_DEFUN([SPL_AC_RWSEM_ACTIVITY], [
-       AC_MSG_CHECKING([whether struct rw_semaphore has member activity])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/rwsem.h>
-       ],[
-               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
-               dummy_semaphore.activity = 0;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_RWSEM_ACTIVITY, 1,
-               [struct rw_semaphore has member activity])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 4.8 API Change
-dnl #
-dnl # rwsem "->count" changed to atomic_long_t type
-dnl #
-AC_DEFUN([SPL_AC_RWSEM_ATOMIC_LONG_COUNT], [
-       AC_MSG_CHECKING(
-       [whether struct rw_semaphore has atomic_long_t member count])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/rwsem.h>
-       ],[
-               DECLARE_RWSEM(dummy_semaphore);
-               (void) atomic_long_read(&dummy_semaphore.count);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_RWSEM_ATOMIC_LONG_COUNT, 1,
-               [struct rw_semaphore has atomic_long_t member count])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 3.9 API change,
-dnl # Moved things from linux/sched.h to linux/sched/rt.h
-dnl #
-AC_DEFUN([SPL_AC_SCHED_RT_HEADER],
-       [AC_MSG_CHECKING([whether header linux/sched/rt.h exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/sched.h>
-               #include <linux/sched/rt.h>
-       ],[
-               return 0;
-       ],[
-               AC_DEFINE(HAVE_SCHED_RT_HEADER, 1, [linux/sched/rt.h exists])
-               AC_MSG_RESULT(yes)
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 4.11 API change,
-dnl # Moved things from linux/sched.h to linux/sched/signal.h
-dnl #
-AC_DEFUN([SPL_AC_SCHED_SIGNAL_HEADER],
-       [AC_MSG_CHECKING([whether header linux/sched/signal.h exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/sched.h>
-               #include <linux/sched/signal.h>
-       ],[
-               return 0;
-       ],[
-               AC_DEFINE(HAVE_SCHED_SIGNAL_HEADER, 1, [linux/sched/signal.h exists])
-               AC_MSG_RESULT(yes)
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 4.11 API, a528d35e@torvalds/linux
-dnl # vfs_getattr(const struct path *p, struct kstat *s, u32 m, unsigned int f)
-dnl #
-AC_DEFUN([SPL_AC_4ARGS_VFS_GETATTR], [
-       AC_MSG_CHECKING([whether vfs_getattr() wants 4 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_getattr((const struct path *)NULL,
-                       (struct kstat *)NULL,
-                       (u32)0,
-                       (unsigned int)0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_4ARGS_VFS_GETATTR, 1,
-                 [vfs_getattr wants 4 args])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 3.9 API 
-dnl # vfs_getattr(struct path *p, struct kstat *s)
-dnl #
-AC_DEFUN([SPL_AC_2ARGS_VFS_GETATTR], [
-       AC_MSG_CHECKING([whether vfs_getattr() wants 2 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_getattr((struct path *) NULL,
-                       (struct kstat *)NULL);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_2ARGS_VFS_GETATTR, 1,
-                         [vfs_getattr wants 2 args])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # <3.9 API 
-dnl # vfs_getattr(struct vfsmount *v, struct dentry *d, struct kstat *k)
-dnl #
-AC_DEFUN([SPL_AC_3ARGS_VFS_GETATTR], [
-       AC_MSG_CHECKING([whether vfs_getattr() wants 3 args])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               vfs_getattr((struct vfsmount *)NULL,
-                       (struct dentry *)NULL,
-                       (struct kstat *)NULL);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_3ARGS_VFS_GETATTR, 1,
-                 [vfs_getattr wants 3 args])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 2.6.36 API compatibility.
-dnl # Added usleep_range timer.
-dnl # usleep_range is a finer precision implementation of msleep
-dnl # designed to be a drop-in replacement for udelay where a precise
-dnl # sleep / busy-wait is unnecessary.
-dnl #
-AC_DEFUN([SPL_AC_USLEEP_RANGE], [
-       AC_MSG_CHECKING([whether usleep_range() is available])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/delay.h>
-       ],[
-               usleep_range(0, 0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_USLEEP_RANGE, 1,
-                         [usleep_range is available])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 2.6.35 API change,
-dnl # The cachep->gfpflags member was renamed cachep->allocflags.  These are
-dnl # private allocation flags which are applied when allocating a new slab
-dnl # in kmem_getpages().  Unfortunately there is no public API for setting
-dnl # non-default flags.
-dnl #
-AC_DEFUN([SPL_AC_KMEM_CACHE_ALLOCFLAGS], [
-       AC_MSG_CHECKING([whether struct kmem_cache has allocflags])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/slab.h>
-       ],[
-               struct kmem_cache cachep __attribute__ ((unused));
-               cachep.allocflags = GFP_KERNEL;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_KMEM_CACHE_ALLOCFLAGS, 1,
-                       [struct kmem_cache has allocflags])
-       ],[
-               AC_MSG_RESULT(no)
-
-               AC_MSG_CHECKING([whether struct kmem_cache has gfpflags])
-               SPL_LINUX_TRY_COMPILE([
-                       #include <linux/slab.h>
-               ],[
-                       struct kmem_cache cachep __attribute__ ((unused));
-                       cachep.gfpflags = GFP_KERNEL;
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_KMEM_CACHE_GFPFLAGS, 1,
-                               [struct kmem_cache has gfpflags])
-               ],[
-                       AC_MSG_RESULT(no)
-               ])
-       ])
-])
-
-dnl #
-dnl # 3.17 API change,
-dnl # wait_on_bit() no longer requires an action argument. The former
-dnl # "wait_on_bit" interface required an 'action' function to be provided
-dnl # which does the actual waiting. There were over 20 such functions in the
-dnl # kernel, many of them identical, though most cases can be satisfied by one
-dnl # of just two functions: one which uses io_schedule() and one which just
-dnl # uses schedule().  This API change was made to consolidate all of those
-dnl # redundant wait functions.
-dnl #
-AC_DEFUN([SPL_AC_WAIT_ON_BIT], [
-       AC_MSG_CHECKING([whether wait_on_bit() takes an action])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/wait.h>
-       ],[
-               int (*action)(void *) = NULL;
-               wait_on_bit(NULL, 0, action, 0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_WAIT_ON_BIT_ACTION, 1, [yes])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 4.7 API change
-dnl # i_mutex is changed to i_rwsem. Instead of directly using
-dnl # i_mutex/i_rwsem, we should use inode_lock() and inode_lock_shared()
-dnl # We test inode_lock_shared because inode_lock is introduced earlier.
-dnl #
-AC_DEFUN([SPL_AC_INODE_LOCK], [
-       AC_MSG_CHECKING([whether inode_lock_shared() exists])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               struct inode *inode = NULL;
-               inode_lock_shared(inode);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_INODE_LOCK_SHARED, 1, [yes])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 4.9 API change
-dnl # group_info changed from 2d array via >blocks to 1d array via ->gid
-dnl #
-AC_DEFUN([SPL_AC_GROUP_INFO_GID], [
-       AC_MSG_CHECKING([whether group_info->gid exists])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/cred.h>
-       ],[
-               struct group_info *gi = groups_alloc(1);
-               gi->gid[0] = KGIDT_INIT(0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_GROUP_INFO_GID, 1, [group_info->gid exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # grsecurity API change,
-dnl # kmem_cache_create() with SLAB_USERCOPY flag replaced by
-dnl # kmem_cache_create_usercopy().
-dnl #
-AC_DEFUN([SPL_AC_KMEM_CACHE_CREATE_USERCOPY], [
-       AC_MSG_CHECKING([whether kmem_cache_create_usercopy() exists])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/slab.h>
-               static void ctor(void *foo)
-               {
-                       // fake ctor
-               }
-       ],[
-               struct kmem_cache *skc_linux_cache;
-               const char *name = "test";
-               size_t size = 4096;
-               size_t align = 8;
-               unsigned long flags = 0;
-               size_t useroffset = 0;
-               size_t usersize = size - useroffset;
-
-               skc_linux_cache = kmem_cache_create_usercopy(
-                       name, size, align, flags, useroffset, usersize, ctor);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_KMEM_CACHE_CREATE_USERCOPY, 1,
-                               [kmem_cache_create_usercopy() exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 4.13 API change
-dnl # Renamed struct wait_queue -> struct wait_queue_entry.
-dnl #
-AC_DEFUN([SPL_AC_WAIT_QUEUE_ENTRY_T], [
-       AC_MSG_CHECKING([whether wait_queue_entry_t exists])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/wait.h>
-       ],[
-               wait_queue_entry_t *entry __attribute__ ((unused));
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_WAIT_QUEUE_ENTRY_T, 1,
-                   [wait_queue_entry_t exists])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 4.13 API change
-dnl # Renamed wait_queue_head::task_list -> wait_queue_head::head
-dnl # Renamed wait_queue_entry::task_list -> wait_queue_entry::entry
-dnl #
-AC_DEFUN([SPL_AC_WAIT_QUEUE_HEAD_ENTRY], [
-       AC_MSG_CHECKING([whether wq_head->head and wq_entry->entry exist])
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/wait.h>
-
-               #ifdef HAVE_WAIT_QUEUE_ENTRY_T
-               typedef wait_queue_head_t       spl_wait_queue_head_t;
-               typedef wait_queue_entry_t      spl_wait_queue_entry_t;
-               #else
-               typedef wait_queue_head_t       spl_wait_queue_head_t;
-               typedef wait_queue_t            spl_wait_queue_entry_t;
-               #endif
-       ],[
-               spl_wait_queue_head_t wq_head;
-               spl_wait_queue_entry_t wq_entry;
-               struct list_head *head __attribute__ ((unused));
-               struct list_head *entry __attribute__ ((unused));
-
-               head = &wq_head.head;
-               entry = &wq_entry.entry;
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_WAIT_QUEUE_HEAD_ENTRY, 1,
-                   [wq_head->head and wq_entry->entry exist])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-])
-
-dnl #
-dnl # 4.14 API change
-dnl # kernel_write() which was introduced in 3.9 was updated to take
-dnl # the offset as a pointer which is needed by vn_rdwr().
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_WRITE], [
-       AC_MSG_CHECKING([whether kernel_write() takes loff_t pointer])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               struct file *file = NULL;
-               const void *buf = NULL;
-               size_t count = 0;
-               loff_t *pos = NULL;
-               ssize_t ret;
-
-               ret = kernel_write(file, buf, count, pos);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_KERNEL_WRITE_PPOS, 1,
-                   [kernel_write() take loff_t pointer])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 4.14 API change
-dnl # kernel_read() which has existed for forever was updated to take
-dnl # the offset as a pointer which is needed by vn_rdwr().
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_READ], [
-       AC_MSG_CHECKING([whether kernel_read() takes loff_t pointer])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/fs.h>
-       ],[
-               struct file *file = NULL;
-               void *buf = NULL;
-               size_t count = 0;
-               loff_t *pos = NULL;
-               ssize_t ret;
-
-               ret = kernel_read(file, buf, count, pos);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_KERNEL_READ_PPOS, 1,
-                   [kernel_read() take loff_t pointer])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
-
-dnl #
-dnl # 4.15 API change
-dnl # https://lkml.org/lkml/2017/11/25/90
-dnl # Check if timer_list.func get passed a timer_list or an unsigned long
-dnl # (older kernels).  Also sanity check the from_timer() and timer_setup()
-dnl # macros are available as well, since they will be used in the same newer
-dnl # kernels that support the new timer_list.func signature.
-dnl #
-AC_DEFUN([SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST], [
-       AC_MSG_CHECKING([whether timer_list.function gets a timer_list])
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       SPL_LINUX_TRY_COMPILE([
-               #include <linux/timer.h>
-               void task_expire(struct timer_list *tl) {}
-       ],[
-               #ifndef from_timer
-               #error "No from_timer() macro"
-               #endif
-
-               struct timer_list timer;
-               timer.function = task_expire;
-               timer_setup(&timer, NULL, 0);
-       ],[
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST, 1,
-                   [timer_list.function gets a timer_list])
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-       EXTRA_KCFLAGS="$tmp_flags"
-])
index 6ba8608b575aed20291e0270fabc7410ed271069..dac28ded08c220a3b56666471d22ee436ddbba6f 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.6.
+# Generated by GNU Autoconf 2.63 for spl 0.7.8.
 #
 # 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.6'
-PACKAGE_STRING='spl 0.7.6'
+PACKAGE_VERSION='0.7.8'
+PACKAGE_STRING='spl 0.7.8'
 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.6 to adapt to many kinds of systems.
+\`configure' configures spl 0.7.8 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.6:";;
+     short | recursive ) echo "Configuration of spl 0.7.8:";;
    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.6
+spl configure 0.7.8
 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.6, which was
+It was created by spl $as_me 0.7.8, 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.6'
+ VERSION='0.7.8'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11565,6 +11565,7 @@ fi
        RPM_DEFINE_COMMON='--define "$(DEBUG_SPL) 1" --define "$(DEBUG_KMEM) 1" --define "$(DEBUG_KMEM_TRACKING) 1"'
        RPM_DEFINE_UTIL=
        RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"'
+       RPM_DEFINE_KMOD+=' --define "_wrong_version_format_terminate_build 0"'
        RPM_DEFINE_DKMS=
 
        SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
@@ -12915,8 +12916,9 @@ fi
 
        EXTRA_KCFLAGS="$tmp_flags"
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_unlink() wants 2 args" >&5
-$as_echo_n "checking whether vfs_unlink() wants 2 args... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5
+$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -12933,7 +12935,7 @@ int
 main (void)
 {
 
-               vfs_unlink((struct inode *) NULL, (struct dentry *) NULL);
+               vfs_fsync(NULL, 0);
 
   ;
   return 0;
@@ -12962,7 +12964,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_VFS_UNLINK 1
+#define HAVE_2ARGS_VFS_FSYNC 1
 _ACEOF
 
 
@@ -12972,8 +12974,18 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-                                                                               { $as_echo "$as_me:$LINENO: checking whether vfs_unlink() wants 3 args" >&5
-$as_echo_n "checking whether vfs_unlink() wants 3 args... " >&6; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether truncate_range() inode operation is available" >&5
+$as_echo_n "checking whether truncate_range() inode operation is available... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -12984,15 +12996,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/fs.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-                       vfs_unlink((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
+               struct inode_operations ops;
+               ops.truncate_range = NULL;
 
   ;
   return 0;
@@ -13017,11 +13028,11 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_3ARGS_VFS_UNLINK 1
+#define HAVE_INODE_TRUNCATE_RANGE 1
 _ACEOF
 
 
@@ -13029,9 +13040,8 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { { $as_echo "$as_me:$LINENO: error: no" >&5
-$as_echo "$as_me: error: no" >&2;}
-   { (exit 1); exit 1; }; }
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 
 
 
 
 
 
-
-
-fi
-
-       rm -Rf build
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 4 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 4 args... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether struct fs_struct uses spinlock_t" >&5
+$as_echo_n "checking whether struct fs_struct uses spinlock_t... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13062,14 +13066,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/sched.h>
+               #include <linux/fs_struct.h>
 
 int
 main (void)
 {
 
-               vfs_rename((struct inode *) NULL, (struct dentry *) NULL,
-                       (struct inode *) NULL, (struct dentry *) NULL);
+               static struct fs_struct fs;
+               spin_lock_init(&fs.lock);
 
   ;
   return 0;
@@ -13098,7 +13103,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_4ARGS_VFS_RENAME 1
+#define HAVE_FS_STRUCT_SPINLOCK 1
 _ACEOF
 
 
@@ -13108,8 +13113,19 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-                                                                               { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 5 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 5 args... " >&6; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
+
+       { $as_echo "$as_me:$LINENO: checking whether kuid_t/kgid_t is available" >&5
+$as_echo_n "checking whether kuid_t/kgid_t is available... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13120,17 +13136,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/fs.h>
+               #include <linux/uidgid.h>
 
 int
 main (void)
 {
 
-                       vfs_rename((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
+               kuid_t userid = KUIDT_INIT(0);
+               kgid_t groupid = KGIDT_INIT(0);
 
   ;
   return 0;
@@ -13155,22 +13168,6 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_5ARGS_VFS_RENAME 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                                                                                                                       { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 6 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 6 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13181,18 +13178,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                               #include <linux/fs.h>
+                       #include <linux/uidgid.h>
 
 int
 main (void)
 {
 
-                               vfs_rename((struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode **) NULL,
-                                       (unsigned int) 0);
+                       kuid_t userid = 0;
+                       kgid_t groupid = 0;
 
   ;
   return 0;
@@ -13217,28 +13210,19 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_6ARGS_VFS_RENAME 1
-_ACEOF
-
+                       { $as_echo "$as_me:$LINENO: result: yes; optional" >&5
+$as_echo "yes; optional" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                               { { $as_echo "$as_me:$LINENO: error: no" >&5
-$as_echo "$as_me: error: no" >&2;}
-   { (exit 1); exit 1; }; }
-
-
-
-fi
-
-       rm -Rf build
+                       { $as_echo "$as_me:$LINENO: result: yes; mandatory" >&5
+$as_echo "yes; mandatory" >&6; }
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KUIDGID_T 1
+_ACEOF
 
 
 
 
 
 
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
 
 
 fi
@@ -13258,8 +13249,9 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5
-$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether fops->fallocate() exists" >&5
+$as_echo_n "checking whether fops->fallocate() exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13276,7 +13268,10 @@ int
 main (void)
 {
 
-               vfs_fsync(NULL, 0);
+               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+               struct file_operations fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
 
   ;
   return 0;
@@ -13305,7 +13300,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_VFS_FSYNC 1
+#define HAVE_FILE_FALLOCATE 1
 _ACEOF
 
 
@@ -13325,8 +13320,8 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether truncate_range() inode operation is available" >&5
-$as_echo_n "checking whether truncate_range() inode operation is available... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether iops->fallocate() exists" >&5
+$as_echo_n "checking whether iops->fallocate() exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13343,8 +13338,10 @@ int
 main (void)
 {
 
-               struct inode_operations ops;
-               ops.truncate_range = NULL;
+               long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL;
+               struct inode_operations fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
 
   ;
   return 0;
@@ -13373,7 +13370,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_INODE_TRUNCATE_RANGE 1
+#define HAVE_INODE_FALLOCATE 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct fs_struct uses spinlock_t" >&5
-$as_echo_n "checking whether struct fs_struct uses spinlock_t... " >&6; }
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether fops->fallocate() exists" >&5
+$as_echo_n "checking whether fops->fallocate() exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13407,15 +13402,16 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/sched.h>
-               #include <linux/fs_struct.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               static struct fs_struct fs;
-               spin_lock_init(&fs.lock);
+               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+               struct file_operations_no_const fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
 
   ;
   return 0;
@@ -13444,7 +13440,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_FS_STRUCT_SPINLOCK 1
+#define HAVE_FILE_FALLOCATE 1
 _ACEOF
 
 
        rm -Rf build
 
 
-       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether kuid_t/kgid_t is available" >&5
-$as_echo_n "checking whether kuid_t/kgid_t is available... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether CONFIG_ZLIB_INFLATE is defined" >&5
+$as_echo_n "checking whether CONFIG_ZLIB_INFLATE is defined... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13477,15 +13473,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/uidgid.h>
+               #if !defined(CONFIG_ZLIB_INFLATE) && \
+                   !defined(CONFIG_ZLIB_INFLATE_MODULE)
+               #error CONFIG_ZLIB_INFLATE not defined
+               #endif
 
 int
 main (void)
 {
 
-               kuid_t userid = KUIDT_INIT(0);
-               kgid_t groupid = KGIDT_INIT(0);
-
   ;
   return 0;
 }
@@ -13509,6 +13505,34 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+               { { $as_echo "$as_me:$LINENO: error:
+       *** This kernel does not include the required zlib inflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set." >&5
+$as_echo "$as_me: error:
+       *** This kernel does not include the required zlib inflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set." >&2;}
+   { (exit 1); exit 1; }; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether CONFIG_ZLIB_DEFLATE is defined" >&5
+$as_echo_n "checking whether CONFIG_ZLIB_DEFLATE is defined... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13519,15 +13543,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/uidgid.h>
+               #if !defined(CONFIG_ZLIB_DEFLATE) && \
+                   !defined(CONFIG_ZLIB_DEFLATE_MODULE)
+               #error CONFIG_ZLIB_DEFLATE not defined
+               #endif
 
 int
 main (void)
 {
 
-                       kuid_t userid = 0;
-                       kgid_t groupid = 0;
-
   ;
   return 0;
 }
@@ -13551,28 +13575,8 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes; optional" >&5
-$as_echo "yes; optional" >&6; }
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-                       { $as_echo "$as_me:$LINENO: result: yes; mandatory" >&5
-$as_echo "yes; mandatory" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_KUIDGID_T 1
-_ACEOF
-
-
-
-
-fi
-
-       rm -Rf build
-
-
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
@@ -13580,6 +13584,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
+               { { $as_echo "$as_me:$LINENO: error:
+       *** This kernel does not include the required zlib deflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set." >&5
+$as_echo "$as_me: error:
+       *** This kernel does not include the required zlib deflate support.
+       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set." >&2;}
+   { (exit 1); exit 1; }; }
 
 
 
 
 
 
-
-
-       { $as_echo "$as_me:$LINENO: checking whether fops->fallocate() exists" >&5
-$as_echo_n "checking whether fops->fallocate() exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether zlib_deflate_workspacesize() wants 2 args" >&5
+$as_echo_n "checking whether zlib_deflate_workspacesize() wants 2 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13603,16 +13612,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/zlib.h>
 
 int
 main (void)
 {
 
-               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
-               struct file_operations fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
+               return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL);
 
   ;
   return 0;
@@ -13641,7 +13647,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_FILE_FALLOCATE 1
+#define HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE 1
 _ACEOF
 
 
@@ -13661,8 +13667,8 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether iops->fallocate() exists" >&5
-$as_echo_n "checking whether iops->fallocate() exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether struct shrink_control exists" >&5
+$as_echo_n "checking whether struct shrink_control exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13673,16 +13679,16 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/mm.h>
 
 int
 main (void)
 {
 
-               long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL;
-               struct inode_operations fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
+               struct shrink_control sc __attribute__ ((unused));
+
+               sc.nr_to_scan = 0;
+               sc.gfp_mask = GFP_KERNEL;
 
   ;
   return 0;
@@ -13711,7 +13717,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_INODE_FALLOCATE 1
+#define HAVE_SHRINK_CONTROL_STRUCT 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether fops->fallocate() exists" >&5
-$as_echo_n "checking whether fops->fallocate() exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore member wait_lock is raw" >&5
+$as_echo_n "checking whether struct rw_semaphore member wait_lock is raw... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13743,16 +13751,16 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/rwsem.h>
 
 int
 main (void)
 {
 
-               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
-               struct file_operations_no_const fops __attribute__ ((unused)) = {
-                       .fallocate = fallocate,
-               };
+               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
+               raw_spinlock_t dummy_lock __attribute__ ((unused)) =
+                   __RAW_SPIN_LOCK_INITIALIZER(dummy_lock);
+               dummy_semaphore.wait_lock = dummy_lock;
 
   ;
   return 0;
@@ -13781,7 +13789,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_FILE_FALLOCATE 1
+#define RWSEM_SPINLOCK_IS_RAW 1
 _ACEOF
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
 
 
-
-       { $as_echo "$as_me:$LINENO: checking whether CONFIG_ZLIB_INFLATE is defined" >&5
-$as_echo_n "checking whether CONFIG_ZLIB_INFLATE is defined... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore has member activity" >&5
+$as_echo_n "checking whether struct rw_semaphore has member activity... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13814,15 +13824,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #if !defined(CONFIG_ZLIB_INFLATE) && \
-                   !defined(CONFIG_ZLIB_INFLATE_MODULE)
-               #error CONFIG_ZLIB_INFLATE not defined
-               #endif
+               #include <linux/rwsem.h>
 
 int
 main (void)
 {
 
+               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
+               dummy_semaphore.activity = 0;
+
   ;
   return 0;
 }
@@ -13849,19 +13859,17 @@ _ACEOF
                { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RWSEM_ACTIVITY 1
+_ACEOF
+
+
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-               { { $as_echo "$as_me:$LINENO: error:
-       *** This kernel does not include the required zlib inflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set." >&5
-$as_echo "$as_me: error:
-       *** This kernel does not include the required zlib inflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_INFLATE=y|m set." >&2;}
-   { (exit 1); exit 1; }; }
 
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether CONFIG_ZLIB_DEFLATE is defined" >&5
-$as_echo_n "checking whether CONFIG_ZLIB_DEFLATE is defined... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore has atomic_long_t member count" >&5
+$as_echo_n "checking whether struct rw_semaphore has atomic_long_t member count... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13884,15 +13895,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #if !defined(CONFIG_ZLIB_DEFLATE) && \
-                   !defined(CONFIG_ZLIB_DEFLATE_MODULE)
-               #error CONFIG_ZLIB_DEFLATE not defined
-               #endif
+               #include <linux/rwsem.h>
 
 int
 main (void)
 {
 
+               DECLARE_RWSEM(dummy_semaphore);
+               (void) atomic_long_read(&dummy_semaphore.count);
+
   ;
   return 0;
 }
@@ -13919,19 +13930,17 @@ _ACEOF
                { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RWSEM_ATOMIC_LONG_COUNT 1
+_ACEOF
+
+
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-               { { $as_echo "$as_me:$LINENO: error:
-       *** This kernel does not include the required zlib deflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set." >&5
-$as_echo "$as_me: error:
-       *** This kernel does not include the required zlib deflate support.
-       *** Rebuild the kernel with CONFIG_ZLIB_DEFLATE=y|m set." >&2;}
-   { (exit 1); exit 1; }; }
 
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
 
-       { $as_echo "$as_me:$LINENO: checking whether zlib_deflate_workspacesize() wants 2 args" >&5
-$as_echo_n "checking whether zlib_deflate_workspacesize() wants 2 args... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether header linux/sched/rt.h exists" >&5
+$as_echo_n "checking whether header linux/sched/rt.h exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -13953,13 +13963,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/zlib.h>
+               #include <linux/sched.h>
+               #include <linux/sched/rt.h>
 
 int
 main (void)
 {
 
-               return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL);
+               return 0;
 
   ;
   return 0;
@@ -13984,13 +13995,13 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE 1
+#define HAVE_SCHED_RT_HEADER 1
 _ACEOF
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
@@ -14007,9 +14018,8 @@ fi
 
 
 
-
-       { $as_echo "$as_me:$LINENO: checking whether struct shrink_control exists" >&5
-$as_echo_n "checking whether struct shrink_control exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether header linux/sched/signal.h exists" >&5
+$as_echo_n "checking whether header linux/sched/signal.h exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14020,16 +14030,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/mm.h>
+               #include <linux/sched.h>
+               #include <linux/sched/signal.h>
 
 int
 main (void)
 {
 
-               struct shrink_control sc __attribute__ ((unused));
-
-               sc.nr_to_scan = 0;
-               sc.gfp_mask = GFP_KERNEL;
+               return 0;
 
   ;
   return 0;
@@ -14054,13 +14062,13 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_SHRINK_CONTROL_STRUCT 1
+#define HAVE_SCHED_SIGNAL_HEADER 1
 _ACEOF
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore member wait_lock is raw" >&5
-$as_echo_n "checking whether struct rw_semaphore member wait_lock is raw... " >&6; }
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 4 args" >&5
+$as_echo_n "checking whether vfs_getattr() wants 4 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14092,16 +14098,16 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/rwsem.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
-               raw_spinlock_t dummy_lock __attribute__ ((unused)) =
-                   __RAW_SPIN_LOCK_INITIALIZER(dummy_lock);
-               dummy_semaphore.wait_lock = dummy_lock;
+               vfs_getattr((const struct path *)NULL,
+                       (struct kstat *)NULL,
+                       (u32)0,
+                       (unsigned int)0);
 
   ;
   return 0;
@@ -14130,7 +14136,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define RWSEM_SPINLOCK_IS_RAW 1
+#define HAVE_4ARGS_VFS_GETATTR 1
 _ACEOF
 
 
        rm -Rf build
 
 
-       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore has member activity" >&5
-$as_echo_n "checking whether struct rw_semaphore has member activity... " >&6; }
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 3 args" >&5
+$as_echo_n "checking whether vfs_getattr() wants 3 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14165,14 +14168,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/rwsem.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               struct rw_semaphore dummy_semaphore __attribute__ ((unused));
-               dummy_semaphore.activity = 0;
+               vfs_getattr((struct vfsmount *)NULL,
+                       (struct dentry *)NULL,
+                       (struct kstat *)NULL);
 
   ;
   return 0;
@@ -14201,7 +14205,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_RWSEM_ACTIVITY 1
+#define HAVE_3ARGS_VFS_GETATTR 1
 _ACEOF
 
 
        rm -Rf build
 
 
-       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore has atomic_long_t member count" >&5
-$as_echo_n "checking whether struct rw_semaphore has atomic_long_t member count... " >&6; }
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 2 args" >&5
+$as_echo_n "checking whether vfs_getattr() wants 2 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14236,14 +14237,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/rwsem.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               DECLARE_RWSEM(dummy_semaphore);
-               (void) atomic_long_read(&dummy_semaphore.count);
+               vfs_getattr((struct path *) NULL,
+                       (struct kstat *)NULL);
 
   ;
   return 0;
@@ -14272,7 +14273,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_RWSEM_ATOMIC_LONG_COUNT 1
+#define HAVE_2ARGS_VFS_GETATTR 1
 _ACEOF
 
 
        rm -Rf build
 
 
-       EXTRA_KCFLAGS="$tmp_flags"
 
-       { $as_echo "$as_me:$LINENO: checking whether header linux/sched/rt.h exists" >&5
-$as_echo_n "checking whether header linux/sched/rt.h exists... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether usleep_range() is available" >&5
+$as_echo_n "checking whether usleep_range() is available... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14304,14 +14305,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/sched.h>
-               #include <linux/sched/rt.h>
+               #include <linux/delay.h>
 
 int
 main (void)
 {
 
-               return 0;
+               usleep_range(0, 0);
 
   ;
   return 0;
@@ -14336,13 +14336,13 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_SCHED_RT_HEADER 1
+#define HAVE_USLEEP_RANGE 1
 _ACEOF
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
@@ -14359,8 +14359,9 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether header linux/sched/signal.h exists" >&5
-$as_echo_n "checking whether header linux/sched/signal.h exists... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether struct kmem_cache has allocflags" >&5
+$as_echo_n "checking whether struct kmem_cache has allocflags... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14371,14 +14372,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/sched.h>
-               #include <linux/sched/signal.h>
+               #include <linux/slab.h>
 
 int
 main (void)
 {
 
-               return 0;
+               struct kmem_cache cachep __attribute__ ((unused));
+               cachep.allocflags = GFP_KERNEL;
 
   ;
   return 0;
@@ -14403,13 +14404,13 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_SCHED_SIGNAL_HEADER 1
+#define HAVE_KMEM_CACHE_ALLOCFLAGS 1
 _ACEOF
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
 else
   $as_echo "$as_me: failed program was:" >&5
@@ -14418,17 +14419,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
 
-
-
-fi
-
-       rm -Rf build
-
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 4 args" >&5
-$as_echo_n "checking whether vfs_getattr() wants 4 args... " >&6; }
+               { $as_echo "$as_me:$LINENO: checking whether struct kmem_cache has gfpflags" >&5
+$as_echo_n "checking whether struct kmem_cache has gfpflags... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14439,16 +14431,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+                       #include <linux/slab.h>
 
 int
 main (void)
 {
 
-               vfs_getattr((const struct path *)NULL,
-                       (struct kstat *)NULL,
-                       (u32)0,
-                       (unsigned int)0);
+                       struct kmem_cache cachep __attribute__ ((unused));
+                       cachep.gfpflags = GFP_KERNEL;
 
   ;
   return 0;
@@ -14473,11 +14463,11 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_4ARGS_VFS_GETATTR 1
+#define HAVE_KMEM_CACHE_GFPFLAGS 1
 _ACEOF
 
 
@@ -14485,7 +14475,7 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-               { $as_echo "$as_me:$LINENO: result: no" >&5
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 3 args" >&5
-$as_echo_n "checking whether vfs_getattr() wants 3 args... " >&6; }
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $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; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14509,15 +14507,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/wait.h>
 
 int
 main (void)
 {
 
-               vfs_getattr((struct vfsmount *)NULL,
-                       (struct dentry *)NULL,
-                       (struct kstat *)NULL);
+               int (*action)(void *) = NULL;
+               wait_on_bit(NULL, 0, action, 0);
 
   ;
   return 0;
@@ -14546,7 +14543,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_3ARGS_VFS_GETATTR 1
+#define HAVE_WAIT_ON_BIT_ACTION 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_getattr() wants 2 args" >&5
-$as_echo_n "checking whether vfs_getattr() wants 2 args... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether inode_lock_shared() exists" >&5
+$as_echo_n "checking whether inode_lock_shared() exists... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14584,8 +14583,8 @@ int
 main (void)
 {
 
-               vfs_getattr((struct path *) NULL,
-                       (struct kstat *)NULL);
+               struct inode *inode = NULL;
+               inode_lock_shared(inode);
 
   ;
   return 0;
@@ -14614,7 +14613,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_VFS_GETATTR 1
+#define HAVE_INODE_LOCK_SHARED 1
 _ACEOF
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
+
+
+       { $as_echo "$as_me:$LINENO: checking whether group_info->gid exists" >&5
+$as_echo_n "checking whether group_info->gid exists... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether usleep_range() is available" >&5
-$as_echo_n "checking whether usleep_range() is available... " >&6; }
-
-
 cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
@@ -14646,13 +14648,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/delay.h>
+               #include <linux/cred.h>
 
 int
 main (void)
 {
 
-               usleep_range(0, 0);
+               struct group_info *gi = groups_alloc(1);
+               gi->gid[0] = KGIDT_INIT(0);
 
   ;
   return 0;
@@ -14681,7 +14684,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_USLEEP_RANGE 1
+#define HAVE_GROUP_INFO_GID 1
 _ACEOF
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct kmem_cache has allocflags" >&5
-$as_echo_n "checking whether struct kmem_cache has allocflags... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether kmem_cache_create_usercopy() exists" >&5
+$as_echo_n "checking whether kmem_cache_create_usercopy() exists... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14714,13 +14720,25 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
                #include <linux/slab.h>
+               static void ctor(void *foo)
+               {
+                       // fake ctor
+               }
 
 int
 main (void)
 {
 
-               struct kmem_cache cachep __attribute__ ((unused));
-               cachep.allocflags = GFP_KERNEL;
+               struct kmem_cache *skc_linux_cache;
+               const char *name = "test";
+               size_t size = 4096;
+               size_t align = 8;
+               unsigned long flags = 0;
+               size_t useroffset = 0;
+               size_t usersize = size - useroffset;
+
+               skc_linux_cache = kmem_cache_create_usercopy(
+                       name, size, align, flags, useroffset, usersize, ctor);
 
   ;
   return 0;
@@ -14749,7 +14767,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_KMEM_CACHE_ALLOCFLAGS 1
+#define HAVE_KMEM_CACHE_CREATE_USERCOPY 1
 _ACEOF
 
 
@@ -14760,8 +14778,18 @@ sed 's/^/| /' conftest.$ac_ext >&5
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
 
-               { $as_echo "$as_me:$LINENO: checking whether struct kmem_cache has gfpflags" >&5
-$as_echo_n "checking whether struct kmem_cache has gfpflags... " >&6; }
+
+
+fi
+
+       rm -Rf build
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
+
+       { $as_echo "$as_me:$LINENO: checking whether wait_queue_entry_t exists" >&5
+$as_echo_n "checking whether wait_queue_entry_t exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14772,14 +14800,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/slab.h>
+               #include <linux/wait.h>
 
 int
 main (void)
 {
 
-                       struct kmem_cache cachep __attribute__ ((unused));
-                       cachep.gfpflags = GFP_KERNEL;
+               wait_queue_entry_t *entry __attribute__ ((unused));
 
   ;
   return 0;
@@ -14804,11 +14831,11 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_KMEM_CACHE_GFPFLAGS 1
+#define HAVE_WAIT_QUEUE_ENTRY_T 1
 _ACEOF
 
 
@@ -14816,7 +14843,7 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
+               { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
 
 
 
 
 
-
-fi
-
-       rm -Rf build
-
-
-
-
-       { $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 wq_head->head and wq_entry->entry exist" >&5
+$as_echo_n "checking whether wq_head->head and wq_entry->entry exist... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14850,12 +14869,25 @@ cat >>conftest.$ac_ext <<_ACEOF
 
                #include <linux/wait.h>
 
+               #ifdef HAVE_WAIT_QUEUE_ENTRY_T
+               typedef wait_queue_head_t       spl_wait_queue_head_t;
+               typedef wait_queue_entry_t      spl_wait_queue_entry_t;
+               #else
+               typedef wait_queue_head_t       spl_wait_queue_head_t;
+               typedef wait_queue_t            spl_wait_queue_entry_t;
+               #endif
+
 int
 main (void)
 {
 
-               int (*action)(void *) = NULL;
-               wait_on_bit(NULL, 0, action, 0);
+               spl_wait_queue_head_t wq_head;
+               spl_wait_queue_entry_t wq_entry;
+               struct list_head *head __attribute__ ((unused));
+               struct list_head *entry __attribute__ ((unused));
+
+               head = &wq_head.head;
+               entry = &wq_entry.entry;
 
   ;
   return 0;
@@ -14884,7 +14916,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_WAIT_ON_BIT_ACTION 1
+#define HAVE_WAIT_QUEUE_HEAD_ENTRY 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether inode_lock_shared() exists" >&5
-$as_echo_n "checking whether inode_lock_shared() exists... " >&6; }
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether io_schedule_timeout() is available" >&5
+$as_echo_n "checking whether io_schedule_timeout() is available... " >&6; }
+
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14918,14 +14949,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/sched.h>
 
 int
 main (void)
 {
 
-               struct inode *inode = NULL;
-               inode_lock_shared(inode);
+               (void) io_schedule_timeout(1);
 
   ;
   return 0;
@@ -14949,34 +14979,72 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
+  rc=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ rc=1
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INODE_LOCK_SHARED 1
-_ACEOF
+fi
 
+       rm -Rf build
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+
+       if test $rc -ne 0; then :
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+       else
+               if test "x$enable_linux_builtin" != xyes; then
+
+       grep -q -E '[[:space:]]io_schedule_timeout[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in ; do
+                       grep -q -E "EXPORT_SYMBOL.*(io_schedule_timeout)" \
+                               "$LINUX_OBJ/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then :
+                       rc=1
+               else :
+                       rc=0
+               fi
+       else :
+               rc=0
+       fi
+
+               fi
+               if test $rc -ne 0; then :
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
 
+               else :
 
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
-fi
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IO_SCHEDULE_TIMEOUT 1
+_ACEOF
 
-       rm -Rf build
 
+               fi
+       fi
 
-       EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether group_info->gid exists" >&5
-$as_echo_n "checking whether group_info->gid exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether kernel_write() takes loff_t pointer" >&5
+$as_echo_n "checking whether kernel_write() takes loff_t pointer... " >&6; }
        tmp_flags="$EXTRA_KCFLAGS"
        EXTRA_KCFLAGS="-Werror"
 
@@ -14989,14 +15057,19 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/cred.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               struct group_info *gi = groups_alloc(1);
-               gi->gid[0] = KGIDT_INIT(0);
+               struct file *file = NULL;
+               const void *buf = NULL;
+               size_t count = 0;
+               loff_t *pos = NULL;
+               ssize_t ret;
+
+               ret = kernel_write(file, buf, count, pos);
 
   ;
   return 0;
@@ -15025,7 +15098,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_GROUP_INFO_GID 1
+#define HAVE_KERNEL_WRITE_PPOS 1
 _ACEOF
 
 
@@ -15046,8 +15119,8 @@ fi
        EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether kmem_cache_create_usercopy() exists" >&5
-$as_echo_n "checking whether kmem_cache_create_usercopy() exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether kernel_read() takes loff_t pointer" >&5
+$as_echo_n "checking whether kernel_read() takes loff_t pointer... " >&6; }
        tmp_flags="$EXTRA_KCFLAGS"
        EXTRA_KCFLAGS="-Werror"
 
@@ -15060,26 +15133,19 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/slab.h>
-               static void ctor(void *foo)
-               {
-                       // fake ctor
-               }
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               struct kmem_cache *skc_linux_cache;
-               const char *name = "test";
-               size_t size = 4096;
-               size_t align = 8;
-               unsigned long flags = 0;
-               size_t useroffset = 0;
-               size_t usersize = size - useroffset;
+               struct file *file = NULL;
+               void *buf = NULL;
+               size_t count = 0;
+               loff_t *pos = NULL;
+               ssize_t ret;
 
-               skc_linux_cache = kmem_cache_create_usercopy(
-                       name, size, align, flags, useroffset, usersize, ctor);
+               ret = kernel_read(file, buf, count, pos);
 
   ;
   return 0;
@@ -15108,7 +15174,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_KMEM_CACHE_CREATE_USERCOPY 1
+#define HAVE_KERNEL_READ_PPOS 1
 _ACEOF
 
 
        EXTRA_KCFLAGS="$tmp_flags"
 
 
-       { $as_echo "$as_me:$LINENO: checking whether wait_queue_entry_t exists" >&5
-$as_echo_n "checking whether wait_queue_entry_t exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether timer_list.function gets a timer_list" >&5
+$as_echo_n "checking whether timer_list.function gets a timer_list... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -15141,13 +15209,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/wait.h>
+               #include <linux/timer.h>
+               void task_expire(struct timer_list *tl) {}
 
 int
 main (void)
 {
 
-               wait_queue_entry_t *entry __attribute__ ((unused));
+               #ifndef from_timer
+               #error "No from_timer() macro"
+               #endif
+
+               struct timer_list timer;
+               timer.function = task_expire;
+               timer_setup(&timer, NULL, 0);
 
   ;
   return 0;
@@ -15176,7 +15251,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_WAIT_QUEUE_ENTRY_T 1
+#define HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST 1
 _ACEOF
 
 
        rm -Rf build
 
 
+       EXTRA_KCFLAGS="$tmp_flags"
 
-
-       { $as_echo "$as_me:$LINENO: checking whether wq_head->head and wq_entry->entry exist" >&5
-$as_echo_n "checking whether wq_head->head and wq_entry->entry exist... " >&6; }
+ ;;
+               user)      ;;
+               all)
 
 
-cat confdefs.h - <<_ACEOF >conftest.c
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# Check whether --with-linux was given.
+if test "${with_linux+set}" = set; then
+  withval=$with_linux; kernelsrc="$withval"
+fi
 
 
-               #include <linux/wait.h>
-
-               #ifdef HAVE_WAIT_QUEUE_ENTRY_T
-               typedef wait_queue_head_t       spl_wait_queue_head_t;
-               typedef wait_queue_entry_t      spl_wait_queue_entry_t;
-               #else
-               typedef wait_queue_head_t       spl_wait_queue_head_t;
-               typedef wait_queue_t            spl_wait_queue_entry_t;
-               #endif
-
-int
-main (void)
-{
-
-               spl_wait_queue_head_t wq_head;
-               spl_wait_queue_entry_t wq_entry;
-               struct list_head *head __attribute__ ((unused));
-               struct list_head *entry __attribute__ ((unused));
-
-               head = &wq_head.head;
-               entry = &wq_entry.entry;
-
-  ;
-  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: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WAIT_QUEUE_HEAD_ENTRY 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-
-
-fi
-
-       rm -Rf build
-
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether kernel_write() takes loff_t pointer" >&5
-$as_echo_n "checking whether kernel_write() takes loff_t pointer... " >&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 file *file = NULL;
-               const void *buf = NULL;
-               size_t count = 0;
-               loff_t *pos = NULL;
-               ssize_t ret;
-
-               ret = kernel_write(file, buf, count, pos);
-
-  ;
-  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: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_KERNEL_WRITE_PPOS 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-
-
-fi
-
-       rm -Rf build
-
-
-       EXTRA_KCFLAGS="$tmp_flags"
-
-
-       { $as_echo "$as_me:$LINENO: checking whether kernel_read() takes loff_t pointer" >&5
-$as_echo_n "checking whether kernel_read() takes loff_t pointer... " >&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 file *file = NULL;
-               void *buf = NULL;
-               size_t count = 0;
-               loff_t *pos = NULL;
-               ssize_t ret;
-
-               ret = kernel_read(file, buf, count, pos);
-
-  ;
-  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: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_KERNEL_READ_PPOS 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-
-
-fi
-
-       rm -Rf build
-
-
-       EXTRA_KCFLAGS="$tmp_flags"
-
-
-       { $as_echo "$as_me:$LINENO: checking whether timer_list.function gets a timer_list" >&5
-$as_echo_n "checking whether timer_list.function gets a timer_list... " >&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/timer.h>
-               void task_expire(struct timer_list *tl) {}
-
-int
-main (void)
-{
-
-               #ifndef from_timer
-               #error "No from_timer() macro"
-               #endif
-
-               struct timer_list timer;
-               timer.function = task_expire;
-               timer_setup(&timer, NULL, 0);
-
-  ;
-  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: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-
-
-fi
-
-       rm -Rf build
-
-
-       EXTRA_KCFLAGS="$tmp_flags"
-
- ;;
-               user)      ;;
-               all)
-
-
-# Check whether --with-linux was given.
-if test "${with_linux+set}" = set; then
-  withval=$with_linux; kernelsrc="$withval"
-fi
-
-
-
-# Check whether --with-linux-obj was given.
-if test "${with_linux_obj+set}" = set; then
-  withval=$with_linux_obj; kernelbuild="$withval"
-fi
-
-
-       { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5
-$as_echo_n "checking kernel source directory... " >&6; }
-       if test -z "$kernelsrc"; then
-               if test -e "/lib/modules/$(uname -r)/source"; then
-                       headersdir="/lib/modules/$(uname -r)/source"
-                       sourcelink=$(readlink -f "$headersdir")
-               elif test -e "/lib/modules/$(uname -r)/build"; then
-                       headersdir="/lib/modules/$(uname -r)/build"
-                       sourcelink=$(readlink -f "$headersdir")
-               else
-                       sourcelink=$(ls -1d /usr/src/kernels/* \
-                                    /usr/src/linux-* \
-                                    2>/dev/null | grep -v obj | tail -1)
-               fi
-
-               if test -n "$sourcelink" && test -e ${sourcelink}; then
-                       kernelsrc=`readlink -f ${sourcelink}`
-               else
-                       kernelsrc="Not found"
-               fi
-       else
-               if test "$kernelsrc" = "NONE"; then
-                       kernsrcver=NONE
-               fi
-               withlinux=yes
-       fi
-
-       { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5
-$as_echo "$kernelsrc" >&6; }
-       if test ! -d "$kernelsrc"; then
-               { { $as_echo "$as_me:$LINENO: error:
-       *** Please make sure the kernel devel package for your distribution
-       *** is installed and then try again.  If that fails, you can specify the
-       *** location of the kernel source with the '--with-linux=PATH' option." >&5
-$as_echo "$as_me: error:
-       *** Please make sure the kernel devel package for your distribution
-       *** is installed and then try again.  If that fails, you can specify the
-       *** location of the kernel source with the '--with-linux=PATH' option." >&2;}
-   { (exit 1); exit 1; }; }
-       fi
-
-       { $as_echo "$as_me:$LINENO: checking kernel build directory" >&5
-$as_echo_n "checking kernel build directory... " >&6; }
-       if test -z "$kernelbuild"; then
-               if test x$withlinux != xyes -a -e "/lib/modules/$(uname -r)/build"; then
-                       kernelbuild=`readlink -f /lib/modules/$(uname -r)/build`
-               elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
-                       kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu}
-               elif test -d ${kernelsrc}-obj/${target_cpu}/default; then
-                       kernelbuild=${kernelsrc}-obj/${target_cpu}/default
-               elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then
-                       kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu}
-               else
-                       kernelbuild=${kernelsrc}
-               fi
-       fi
-       { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5
-$as_echo "$kernelbuild" >&6; }
-
-       { $as_echo "$as_me:$LINENO: checking kernel source version" >&5
-$as_echo_n "checking kernel source version... " >&6; }
-       utsrelease1=$kernelbuild/include/linux/version.h
-       utsrelease2=$kernelbuild/include/linux/utsrelease.h
-       utsrelease3=$kernelbuild/include/generated/utsrelease.h
-       if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
-               utsrelease=linux/version.h
-       elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
-               utsrelease=linux/utsrelease.h
-       elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
-               utsrelease=generated/utsrelease.h
-       fi
-
-       if test "$utsrelease"; then
-               kernsrcver=`(echo "#include <$utsrelease>";
-                            echo "kernsrcver=UTS_RELEASE") |
-                            cpp -I $kernelbuild/include |
-                            grep "^kernsrcver=" | cut -d \" -f 2`
-
-               if test -z "$kernsrcver"; then
-                       { $as_echo "$as_me:$LINENO: result: Not found" >&5
-$as_echo "Not found" >&6; }
-                       { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5
-$as_echo "$as_me: error: *** Cannot determine kernel version." >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: Not found" >&5
-$as_echo "Not found" >&6; }
-               if test "x$enable_linux_builtin" != xyes; then
-                       { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5
-$as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;}
-   { (exit 1); exit 1; }; }
-               else
-                       { { $as_echo "$as_me:$LINENO: error:
-       *** Cannot find UTS_RELEASE definition.
-       *** Please run 'make prepare' inside the kernel source tree." >&5
-$as_echo "$as_me: error:
-       *** Cannot find UTS_RELEASE definition.
-       *** Please run 'make prepare' inside the kernel source tree." >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-       fi
-
-       { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5
-$as_echo "$kernsrcver" >&6; }
-
-       LINUX=${kernelsrc}
-       LINUX_OBJ=${kernelbuild}
-       LINUX_VERSION=${kernsrcver}
-
-
-
-
-
-
-       modpost=$LINUX/scripts/Makefile.modpost
-       { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5
-$as_echo_n "checking kernel file name for module symbols... " >&6; }
-       if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then
-               if grep -q Modules.symvers $modpost; then
-                       LINUX_SYMBOLS=Modules.symvers
-               else
-                       LINUX_SYMBOLS=Module.symvers
-               fi
-
-               if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then
-                       { { $as_echo "$as_me:$LINENO: error:
-       *** Please make sure the kernel devel package for your distribution
-       *** is installed.  If you are building with a custom kernel, make sure the
-       *** kernel is configured, built, and the '--with-linux=PATH' configure
-       *** option refers to the location of the kernel source." >&5
-$as_echo "$as_me: error:
-       *** Please make sure the kernel devel package for your distribution
-       *** is installed.  If you are building with a custom kernel, make sure the
-       *** kernel is configured, built, and the '--with-linux=PATH' configure
-       *** option refers to the location of the kernel source." >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-       else
-               LINUX_SYMBOLS=NONE
-       fi
-       { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5
-$as_echo "$LINUX_SYMBOLS" >&6; }
-
-
-
-
-       if test "${LINUX_OBJ}" != "${LINUX}"; then
-               KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
-       fi
-
-
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether debugging is enabled" >&5
-$as_echo_n "checking whether debugging is enabled... " >&6; }
-       # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval=$enable_debug;
-else
-  enable_debug=no
-fi
-
-
-       if test "x$enable_debug" = xyes; then
-
-               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror"
-               DEBUG_CFLAGS="-DDEBUG -Werror"
-               DEBUG_SPL="_with_debug"
-
-else
-
-               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG"
-               DEBUG_CFLAGS="-DNDEBUG"
-               DEBUG_SPL="_without_debug"
-
-fi
-
-
-
-
-       { $as_echo "$as_me:$LINENO: result: $enable_debug" >&5
-$as_echo "$enable_debug" >&6; }
-
-
-       # Check whether --enable-debug-kmem was given.
-if test "${enable_debug_kmem+set}" = set; then
-  enableval=$enable_debug_kmem;
-else
-  enable_debug_kmem=no
-fi
-
-
-       if test "x$enable_debug_kmem" = xyes; then
-
-               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM"
-               DEBUG_KMEM="_with_debug_kmem"
-
-cat >>confdefs.h <<\_ACEOF
-#define DEBUG_KMEM 1
-_ACEOF
-
-
-else
-
-               DEBUG_KMEM="_without_debug_kmem"
-
-fi
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether basic kmem accounting is enabled" >&5
-$as_echo_n "checking whether basic kmem accounting is enabled... " >&6; }
-       { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem" >&5
-$as_echo "$enable_debug_kmem" >&6; }
-
-
-       # Check whether --enable-debug-kmem-tracking was given.
-if test "${enable_debug_kmem_tracking+set}" = set; then
-  enableval=$enable_debug_kmem_tracking;
-else
-  enable_debug_kmem_tracking=no
-fi
-
-
-       if test "x$enable_debug_kmem_tracking" = xyes; then
-
-               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM_TRACKING"
-               DEBUG_KMEM_TRACKING="_with_debug_kmem_tracking"
-
-cat >>confdefs.h <<\_ACEOF
-#define DEBUG_KMEM_TRACKING 1
-_ACEOF
-
-
-else
-
-               DEBUG_KMEM_TRACKING="_without_debug_kmem_tracking"
-
-fi
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether detailed kmem tracking is enabled" >&5
-$as_echo_n "checking whether detailed kmem tracking is enabled... " >&6; }
-       { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem_tracking" >&5
-$as_echo "$enable_debug_kmem_tracking" >&6; }
-
-       { $as_echo "$as_me:$LINENO: checking whether modules can be built" >&5
-$as_echo_n "checking whether modules can be built... " >&6; }
-
-
-cat confdefs.h - <<_ACEOF >conftest.c
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-int
-main (void)
-{
-
-  ;
-  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: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-               if test "x$enable_linux_builtin" != xyes; then
-                       { { $as_echo "$as_me:$LINENO: error: *** Unable to build an empty module." >&5
-$as_echo "$as_me: error: *** Unable to build an empty module." >&2;}
-   { (exit 1); exit 1; }; }
-               else
-                       { { $as_echo "$as_me:$LINENO: error:
-       *** Unable to build an empty module.
-       *** Please run 'make scripts' inside the kernel source tree." >&5
-$as_echo "$as_me: error:
-       *** Unable to build an empty module.
-       *** Please run 'make scripts' inside the kernel source tree." >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-
-
-
-fi
-
-       rm -Rf build
-
-
-
-       if test "x$cross_compiling" != xyes; then
-
-               if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-else
-  cat >conftest.$ac_ext <<_ACEOF
-
-                       /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-                               #include "$LINUX/include/linux/license.h"
-
-int
-main ()
-{
-
-                               return !license_is_gpl_compatible(
-                                   "$SPL_META_LICENSE");
-
-  ;
-  return 0;
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-
-cat >>confdefs.h <<\_ACEOF
-#define SPL_IS_GPL_COMPATIBLE 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-
-
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-
-
-
-       # Check whether --enable-atomic-spinlocks was given.
-if test "${enable_atomic_spinlocks+set}" = set; then
-  enableval=$enable_atomic_spinlocks;
-else
-  enable_atomic_spinlocks=check
-fi
 
+# Check whether --with-linux-obj was given.
+if test "${with_linux_obj+set}" = set; then
+  withval=$with_linux_obj; kernelbuild="$withval"
+fi
 
 
+       { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5
+$as_echo_n "checking kernel source directory... " >&6; }
+       if test -z "$kernelsrc"; then
+               if test -e "/lib/modules/$(uname -r)/source"; then
+                       headersdir="/lib/modules/$(uname -r)/source"
+                       sourcelink=$(readlink -f "$headersdir")
+               elif test -e "/lib/modules/$(uname -r)/build"; then
+                       headersdir="/lib/modules/$(uname -r)/build"
+                       sourcelink=$(readlink -f "$headersdir")
+               else
+                       sourcelink=$(ls -1d /usr/src/kernels/* \
+                                    /usr/src/linux-* \
+                                    2>/dev/null | grep -v obj | tail -1)
+               fi
 
-cat confdefs.h - <<_ACEOF >conftest.c
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+               if test -n "$sourcelink" && test -e ${sourcelink}; then
+                       kernelsrc=`readlink -f ${sourcelink}`
+               else
+                       kernelsrc="Not found"
+               fi
+       else
+               if test "$kernelsrc" = "NONE"; then
+                       kernsrcver=NONE
+               fi
+               withlinux=yes
+       fi
 
+       { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5
+$as_echo "$kernelsrc" >&6; }
+       if test ! -d "$kernelsrc"; then
+               { { $as_echo "$as_me:$LINENO: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed and then try again.  If that fails, you can specify the
+       *** location of the kernel source with the '--with-linux=PATH' option." >&5
+$as_echo "$as_me: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed and then try again.  If that fails, you can specify the
+       *** location of the kernel source with the '--with-linux=PATH' option." >&2;}
+   { (exit 1); exit 1; }; }
+       fi
 
-               #include <linux/fs.h>
+       { $as_echo "$as_me:$LINENO: checking kernel build directory" >&5
+$as_echo_n "checking kernel build directory... " >&6; }
+       if test -z "$kernelbuild"; then
+               if test x$withlinux != xyes -a -e "/lib/modules/$(uname -r)/build"; then
+                       kernelbuild=`readlink -f /lib/modules/$(uname -r)/build`
+               elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
+                       kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu}
+               elif test -d ${kernelsrc}-obj/${target_cpu}/default; then
+                       kernelbuild=${kernelsrc}-obj/${target_cpu}/default
+               elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then
+                       kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu}
+               else
+                       kernelbuild=${kernelsrc}
+               fi
+       fi
+       { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5
+$as_echo "$kernelbuild" >&6; }
 
-int
-main (void)
-{
+       { $as_echo "$as_me:$LINENO: checking kernel source version" >&5
+$as_echo_n "checking kernel source version... " >&6; }
+       utsrelease1=$kernelbuild/include/linux/version.h
+       utsrelease2=$kernelbuild/include/linux/utsrelease.h
+       utsrelease3=$kernelbuild/include/generated/utsrelease.h
+       if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
+               utsrelease=linux/version.h
+       elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
+               utsrelease=linux/utsrelease.h
+       elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
+               utsrelease=generated/utsrelease.h
+       fi
 
-               atomic64_t *ptr __attribute__ ((unused));
+       if test "$utsrelease"; then
+               kernsrcver=`(echo "#include <$utsrelease>";
+                            echo "kernsrcver=UTS_RELEASE") |
+                            cpp -I $kernelbuild/include |
+                            grep "^kernsrcver=" | cut -d \" -f 2`
 
-  ;
-  return 0;
-}
+               if test -z "$kernsrcver"; then
+                       { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+                       { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5
+$as_echo "$as_me: error: *** Cannot determine kernel version." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+               if test "x$enable_linux_builtin" != xyes; then
+                       { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5
+$as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;}
+   { (exit 1); exit 1; }; }
+               else
+                       { { $as_echo "$as_me:$LINENO: error:
+       *** Cannot find UTS_RELEASE definition.
+       *** Please run 'make prepare' inside the kernel source tree." >&5
+$as_echo "$as_me: error:
+       *** Cannot find UTS_RELEASE definition.
+       *** Please run 'make prepare' inside the kernel source tree." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       fi
 
-_ACEOF
+       { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5
+$as_echo "$kernsrcver" >&6; }
 
+       LINUX=${kernelsrc}
+       LINUX_OBJ=${kernelbuild}
+       LINUX_VERSION=${kernsrcver}
 
-       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
 
-               have_atomic64_t=yes
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ATOMIC64_T 1
-_ACEOF
 
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-               have_atomic64_t=no
+       modpost=$LINUX/scripts/Makefile.modpost
+       { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5
+$as_echo_n "checking kernel file name for module symbols... " >&6; }
+       if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then
+               if grep -q Modules.symvers $modpost; then
+                       LINUX_SYMBOLS=Modules.symvers
+               else
+                       LINUX_SYMBOLS=Module.symvers
+               fi
 
+               if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then
+                       { { $as_echo "$as_me:$LINENO: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If you are building with a custom kernel, make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&5
+$as_echo "$as_me: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If you are building with a custom kernel, make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       else
+               LINUX_SYMBOLS=NONE
+       fi
+       { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5
+$as_echo "$LINUX_SYMBOLS" >&6; }
 
 
-fi
 
-       rm -Rf build
 
+       if test "${LINUX_OBJ}" != "${LINUX}"; then
+               KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
+       fi
 
 
-       if test "x$enable_atomic_spinlocks" = xcheck; then
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
 
-               if test "x$have_atomic64_t" = xyes; then
 
-                       enable_atomic_spinlocks=no
 
+       { $as_echo "$as_me:$LINENO: checking whether debugging is enabled" >&5
+$as_echo_n "checking whether debugging is enabled... " >&6; }
+       # Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval=$enable_debug;
 else
-
-                       enable_atomic_spinlocks=yes
-
-fi
-
-
+  enable_debug=no
 fi
 
 
-       if test "x$enable_atomic_spinlocks" = xyes; then
-
-
-cat >>confdefs.h <<\_ACEOF
-#define ATOMIC_SPINLOCK 1
-_ACEOF
+       if test "x$enable_debug" = xyes; then
 
+               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror"
+               DEBUG_CFLAGS="-DDEBUG -Werror"
+               DEBUG_SPL="_with_debug"
 
 else
 
-               if test "x$have_atomic64_t" = xno; then
-
-                       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-
-fi
-
+               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG"
+               DEBUG_CFLAGS="-DNDEBUG"
+               DEBUG_SPL="_without_debug"
 
 fi
 
 
-       { $as_echo "$as_me:$LINENO: checking whether atomic types use spinlocks" >&5
-$as_echo_n "checking whether atomic types use spinlocks... " >&6; }
-       { $as_echo "$as_me:$LINENO: result: $enable_atomic_spinlocks" >&5
-$as_echo "$enable_atomic_spinlocks" >&6; }
-
-       { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_t" >&5
-$as_echo_n "checking whether kernel defines atomic64_t... " >&6; }
-       { $as_echo "$as_me:$LINENO: result: $have_atomic64_t" >&5
-$as_echo "$have_atomic64_t" >&6; }
-
-
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-                                       { $as_echo "$as_me:$LINENO: checking whether old 2-argument shrinker exists" >&5
-$as_echo_n "checking whether old 2-argument shrinker exists... " >&6; }
-
-
-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/mm.h>
-
-               int shrinker_cb(int nr_to_scan, gfp_t gfp_mask);
 
-int
-main (void)
-{
 
-               struct shrinker cache_shrinker = {
-                       .shrink = shrinker_cb,
-                       .seeks = DEFAULT_SEEKS,
-               };
-               register_shrinker(&cache_shrinker);
+       { $as_echo "$as_me:$LINENO: result: $enable_debug" >&5
+$as_echo "$enable_debug" >&6; }
 
-  ;
-  return 0;
-}
 
-_ACEOF
+       # Check whether --enable-debug-kmem was given.
+if test "${enable_debug_kmem+set}" = set; then
+  enableval=$enable_debug_kmem;
+else
+  enable_debug_kmem=no
+fi
 
 
-       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
+       if test "x$enable_debug_kmem" = xyes; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM"
+               DEBUG_KMEM="_with_debug_kmem"
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_OLD_SHRINKER_CALLBACK 1
+#define DEBUG_KMEM 1
 _ACEOF
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                                                                                               { $as_echo "$as_me:$LINENO: checking whether old 3-argument shrinker exists" >&5
-$as_echo_n "checking whether old 3-argument shrinker exists... " >&6; }
+               DEBUG_KMEM="_without_debug_kmem"
 
+fi
 
-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/mm.h>
+       { $as_echo "$as_me:$LINENO: checking whether basic kmem accounting is enabled" >&5
+$as_echo_n "checking whether basic kmem accounting is enabled... " >&6; }
+       { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem" >&5
+$as_echo "$enable_debug_kmem" >&6; }
 
-                       int shrinker_cb(struct shrinker *, int nr_to_scan,
-                                       gfp_t gfp_mask);
 
-int
-main (void)
-{
+       # Check whether --enable-debug-kmem-tracking was given.
+if test "${enable_debug_kmem_tracking+set}" = set; then
+  enableval=$enable_debug_kmem_tracking;
+else
+  enable_debug_kmem_tracking=no
+fi
 
-                       struct shrinker cache_shrinker = {
-                               .shrink = shrinker_cb,
-                               .seeks = DEFAULT_SEEKS,
-                       };
-                       register_shrinker(&cache_shrinker);
 
-  ;
-  return 0;
-}
+       if test "x$enable_debug_kmem_tracking" = xyes; then
+
+               KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM_TRACKING"
+               DEBUG_KMEM_TRACKING="_with_debug_kmem_tracking"
 
+cat >>confdefs.h <<\_ACEOF
+#define DEBUG_KMEM_TRACKING 1
 _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
+else
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+               DEBUG_KMEM_TRACKING="_without_debug_kmem_tracking"
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_3ARGS_SHRINKER_CALLBACK 1
-_ACEOF
+fi
 
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                                                                                                                                               { $as_echo "$as_me:$LINENO: checking whether new 2-argument shrinker exists" >&5
-$as_echo_n "checking whether new 2-argument shrinker exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether detailed kmem tracking is enabled" >&5
+$as_echo_n "checking whether detailed kmem tracking is enabled... " >&6; }
+       { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem_tracking" >&5
+$as_echo "$enable_debug_kmem_tracking" >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether modules can be built" >&5
+$as_echo_n "checking whether modules can be built... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16188,21 +15551,10 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                               #include <linux/mm.h>
-
-                               int shrinker_cb(struct shrinker *,
-                                               struct shrink_control *sc);
-
 int
 main (void)
 {
 
-                               struct shrinker cache_shrinker = {
-                                       .shrink = shrinker_cb,
-                                       .seeks = DEFAULT_SEEKS,
-                               };
-                               register_shrinker(&cache_shrinker);
-
   ;
   return 0;
 }
@@ -16226,124 +15578,126 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                               { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_NEW_SHRINKER_CALLBACK 1
-_ACEOF
-
-
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                               { $as_echo "$as_me:$LINENO: result: no" >&5
+               { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-                                                                                                                                                                                               { $as_echo "$as_me:$LINENO: checking whether ->count_objects callback exists" >&5
-$as_echo_n "checking whether ->count_objects callback exists... " >&6; }
+               if test "x$enable_linux_builtin" != xyes; then
+                       { { $as_echo "$as_me:$LINENO: error: *** Unable to build an empty module." >&5
+$as_echo "$as_me: error: *** Unable to build an empty module." >&2;}
+   { (exit 1); exit 1; }; }
+               else
+                       { { $as_echo "$as_me:$LINENO: error:
+       *** Unable to build an empty module.
+       *** Please run 'make scripts' inside the kernel source tree." >&5
+$as_echo "$as_me: error:
+       *** Unable to build an empty module.
+       *** Please run 'make scripts' inside the kernel source tree." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
 
 
-cat confdefs.h - <<_ACEOF >conftest.c
-/* confdefs.h.  */
+
+fi
+
+       rm -Rf build
+
+
+
+       if test "x$cross_compiling" != xyes; then
+
+               if test "$cross_compiling" = yes; then
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+
+                       /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-
-                                       #include <linux/mm.h>
-
-                                       unsigned long shrinker_cb(
-                                               struct shrinker *,
-                                               struct shrink_control *sc);
+                               #include "$LINUX/include/linux/license.h"
 
 int
-main (void)
+main ()
 {
 
-                                       struct shrinker cache_shrinker = {
-                                               .count_objects = shrinker_cb,
-                                               .scan_objects = shrinker_cb,
-                                               .seeks = DEFAULT_SEEKS,
-                                       };
-                                       register_shrinker(&cache_shrinker);
+                               return !license_is_gpl_compatible(
+                                   "$SPL_META_LICENSE");
 
   ;
   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
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 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
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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: yes" >&5
-$as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_SPLIT_SHRINKER_CALLBACK 1
+#define SPL_IS_GPL_COMPATIBLE 1
 _ACEOF
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                                       { { $as_echo "$as_me:$LINENO: error: error" >&5
-$as_echo "$as_me: error: error" >&2;}
-   { (exit 1); exit 1; }; }
-
+( exit $ac_status )
 
 
 fi
-
-       rm -Rf build
-
-
-
-
-
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
-       rm -Rf build
-
-
-
 
 
 fi
 
-       rm -Rf build
-
-
-
 
 
+       # Check whether --enable-atomic-spinlocks was given.
+if test "${enable_atomic_spinlocks+set}" = set; then
+  enableval=$enable_atomic_spinlocks;
+else
+  enable_atomic_spinlocks=check
 fi
 
-       rm -Rf build
-
-
-       EXTRA_KCFLAGS="$tmp_flags"
-
 
-       { $as_echo "$as_me:$LINENO: checking whether struct ctl_table has ctl_name" >&5
-$as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16354,14 +15708,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/sysctl.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               struct ctl_table ctl __attribute__ ((unused));
-               ctl.ctl_name = 0;
+               atomic64_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -16386,11 +15739,10 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+               have_atomic64_t=yes
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_CTL_NAME 1
+#define HAVE_ATOMIC64_T 1
 _ACEOF
 
 
@@ -16398,8 +15750,7 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+               have_atomic64_t=no
 
 
 
 
 
 
+       if test "x$enable_atomic_spinlocks" = xcheck; then
+
+               if test "x$have_atomic64_t" = xyes; then
+
+                       enable_atomic_spinlocks=no
+
+else
+
+                       enable_atomic_spinlocks=yes
+
+fi
+
+
+fi
+
+
+       if test "x$enable_atomic_spinlocks" = xyes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define ATOMIC_SPINLOCK 1
+_ACEOF
+
+
+else
+
+               if test "x$have_atomic64_t" = xno; then
+
+                       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+
+fi
+
+
+fi
+
+
+       { $as_echo "$as_me:$LINENO: checking whether atomic types use spinlocks" >&5
+$as_echo_n "checking whether atomic types use spinlocks... " >&6; }
+       { $as_echo "$as_me:$LINENO: result: $enable_atomic_spinlocks" >&5
+$as_echo "$enable_atomic_spinlocks" >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_t" >&5
+$as_echo_n "checking whether kernel defines atomic64_t... " >&6; }
+       { $as_echo "$as_me:$LINENO: result: $have_atomic64_t" >&5
+$as_echo "$have_atomic64_t" >&6; }
 
-       { $as_echo "$as_me:$LINENO: checking whether CONFIG_TRIM_UNUSED_KSYM is disabled" >&5
-$as_echo_n "checking whether CONFIG_TRIM_UNUSED_KSYM is disabled... " >&6; }
+
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+                                       { $as_echo "$as_me:$LINENO: checking whether old 2-argument shrinker exists" >&5
+$as_echo_n "checking whether old 2-argument shrinker exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16422,14 +15827,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #if defined(CONFIG_TRIM_UNUSED_KSYMS)
-               #error CONFIG_TRIM_UNUSED_KSYMS not defined
-               #endif
+               #include <linux/mm.h>
+
+               int shrinker_cb(int nr_to_scan, gfp_t gfp_mask);
 
 int
 main (void)
 {
 
+               struct shrinker cache_shrinker = {
+                       .shrink = shrinker_cb,
+                       .seeks = DEFAULT_SEEKS,
+               };
+               register_shrinker(&cache_shrinker);
+
   ;
   return 0;
 }
@@ -16456,32 +15867,19 @@ _ACEOF
                { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_2ARGS_OLD_SHRINKER_CALLBACK 1
+_ACEOF
+
+
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-               { { $as_echo "$as_me:$LINENO: error:
-       *** This kernel has unused symbols trimming enabled, please disable.
-       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set." >&5
-$as_echo "$as_me: error:
-       *** This kernel has unused symbols trimming enabled, please disable.
-       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set." >&2;}
-   { (exit 1); exit 1; }; }
-
-
-
-fi
-
-       rm -Rf build
-
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether PDE_DATA() is available" >&5
-$as_echo_n "checking whether PDE_DATA() is available... " >&6; }
-
+                                                                                               { $as_echo "$as_me:$LINENO: checking whether old 3-argument shrinker exists" >&5
+$as_echo_n "checking whether old 3-argument shrinker exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16492,13 +15890,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/proc_fs.h>
+                       #include <linux/mm.h>
+
+                       int shrinker_cb(struct shrinker *, int nr_to_scan,
+                                       gfp_t gfp_mask);
 
 int
 main (void)
 {
 
-               PDE_DATA(NULL);
+                       struct shrinker cache_shrinker = {
+                               .shrink = shrinker_cb,
+                               .seeks = DEFAULT_SEEKS,
+                       };
+                       register_shrinker(&cache_shrinker);
 
   ;
   return 0;
@@ -16522,73 +15927,23 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  rc=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- rc=1
-
-
-fi
-
-       rm -Rf build
-
-
-       if test $rc -ne 0; then :
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-       else
-               if test "x$enable_linux_builtin" != xyes; then
-
-       grep -q -E '[[:space:]]PDE_DATA[[:space:]]' \
-               $LINUX_OBJ/Module*.symvers 2>/dev/null
-       rc=$?
-       if test $rc -ne 0; then
-               export=0
-               for file in ; do
-                       grep -q -E "EXPORT_SYMBOL.*(PDE_DATA)" \
-                               "$LINUX_OBJ/$file" 2>/dev/null
-                       rc=$?
-                       if test $rc -eq 0; then
-                               export=1
-                               break;
-                       fi
-               done
-               if test $export -eq 0; then :
-                       rc=1
-               else :
-                       rc=0
-               fi
-       else :
-               rc=0
-       fi
-
-               fi
-               if test $rc -ne 0; then :
-
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-               else :
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_PDE_DATA 1
+#define HAVE_3ARGS_SHRINKER_CALLBACK 1
 _ACEOF
 
 
-               fi
-       fi
-
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-       tmp_flags="$EXTRA_KCFLAGS"
-       EXTRA_KCFLAGS="-Werror"
-       { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() requires const struct path *" >&5
-$as_echo_n "checking whether set_fs_pwd() requires const struct path *... " >&6; }
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+                                                                                                                                               { $as_echo "$as_me:$LINENO: checking whether new 2-argument shrinker exists" >&5
+$as_echo_n "checking whether new 2-argument shrinker exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16599,18 +15954,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/spinlock.h>
-               #include <linux/fs_struct.h>
-               #include <linux/path.h>
-               void (*const set_fs_pwd_func)
-                       (struct fs_struct *, const struct path *)
-                       = set_fs_pwd;
+                               #include <linux/mm.h>
+
+                               int shrinker_cb(struct shrinker *,
+                                               struct shrink_control *sc);
 
 int
 main (void)
 {
 
-               return 0;
+                               struct shrinker cache_shrinker = {
+                                       .shrink = shrinker_cb,
+                                       .seeks = DEFAULT_SEEKS,
+                               };
+                               register_shrinker(&cache_shrinker);
 
   ;
   return 0;
@@ -16635,11 +15992,11 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
+                               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_SET_FS_PWD_WITH_CONST 1
+#define HAVE_2ARGS_NEW_SHRINKER_CALLBACK 1
 _ACEOF
 
 
@@ -16647,6 +16004,10 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+                               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+                                                                                                                                                                                               { $as_echo "$as_me:$LINENO: checking whether ->count_objects callback exists" >&5
+$as_echo_n "checking whether ->count_objects callback exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16657,18 +16018,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/spinlock.h>
-                       #include <linux/fs_struct.h>
-                       #include <linux/path.h>
-                       void (*const set_fs_pwd_func)
-                               (struct fs_struct *, struct path *)
-                               = set_fs_pwd;
+                                       #include <linux/mm.h>
+
+                                       unsigned long shrinker_cb(
+                                               struct shrinker *,
+                                               struct shrink_control *sc);
 
 int
 main (void)
 {
 
-                       return 0;
+                                       struct shrinker cache_shrinker = {
+                                               .count_objects = shrinker_cb,
+                                               .scan_objects = shrinker_cb,
+                                               .seeks = DEFAULT_SEEKS,
+                                       };
+                                       register_shrinker(&cache_shrinker);
 
   ;
   return 0;
@@ -16693,16 +16058,37 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+                                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SPLIT_SHRINKER_CALLBACK 1
+_ACEOF
+
 
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { { $as_echo "$as_me:$LINENO: error: unknown" >&5
-$as_echo "$as_me: error: unknown" >&2;}
-   { (exit 1); exit 1; }; }
+                                       { { $as_echo "$as_me:$LINENO: error: error" >&5
+$as_echo "$as_me: error: error" >&2;}
+   { (exit 1); exit 1; }; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+
+fi
+
+       rm -Rf build
+
+
 
 
 
@@ -16721,8 +16107,9 @@ fi
 
        EXTRA_KCFLAGS="$tmp_flags"
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_unlink() wants 2 args" >&5
-$as_echo_n "checking whether vfs_unlink() wants 2 args... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether struct ctl_table has ctl_name" >&5
+$as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16733,13 +16120,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/sysctl.h>
 
 int
 main (void)
 {
 
-               vfs_unlink((struct inode *) NULL, (struct dentry *) NULL);
+               struct ctl_table ctl __attribute__ ((unused));
+               ctl.ctl_name = 0;
 
   ;
   return 0;
@@ -16768,7 +16156,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_VFS_UNLINK 1
+#define HAVE_CTL_NAME 1
 _ACEOF
 
 
@@ -16778,8 +16166,18 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
                { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }
-                                                                               { $as_echo "$as_me:$LINENO: checking whether vfs_unlink() wants 3 args" >&5
-$as_echo_n "checking whether vfs_unlink() wants 3 args... " >&6; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether CONFIG_TRIM_UNUSED_KSYM is disabled" >&5
+$as_echo_n "checking whether CONFIG_TRIM_UNUSED_KSYM is disabled... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16790,16 +16188,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/fs.h>
+               #if defined(CONFIG_TRIM_UNUSED_KSYMS)
+               #error CONFIG_TRIM_UNUSED_KSYMS not defined
+               #endif
 
 int
 main (void)
 {
 
-                       vfs_unlink((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
-
   ;
   return 0;
 }
@@ -16823,20 +16219,21 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_3ARGS_VFS_UNLINK 1
-_ACEOF
-
-
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { { $as_echo "$as_me:$LINENO: error: no" >&5
-$as_echo "$as_me: error: no" >&2;}
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+               { { $as_echo "$as_me:$LINENO: error:
+       *** This kernel has unused symbols trimming enabled, please disable.
+       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set." >&5
+$as_echo "$as_me: error:
+       *** This kernel has unused symbols trimming enabled, please disable.
+       *** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set." >&2;}
    { (exit 1); exit 1; }; }
 
 
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether PDE_DATA() is available" >&5
+$as_echo_n "checking whether PDE_DATA() is available... " >&6; }
 
 
-fi
-
-       rm -Rf build
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 4 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 4 args... " >&6; }
-
 
 cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
@@ -16868,14 +16258,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/proc_fs.h>
 
 int
 main (void)
 {
 
-               vfs_rename((struct inode *) NULL, (struct dentry *) NULL,
-                       (struct inode *) NULL, (struct dentry *) NULL);
+               PDE_DATA(NULL);
 
   ;
   return 0;
@@ -16899,23 +16288,73 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
+  rc=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ rc=1
+
+
+fi
+
+       rm -Rf build
+
+
+       if test $rc -ne 0; then :
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+       else
+               if test "x$enable_linux_builtin" != xyes; then
+
+       grep -q -E '[[:space:]]PDE_DATA[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in ; do
+                       grep -q -E "EXPORT_SYMBOL.*(PDE_DATA)" \
+                               "$LINUX_OBJ/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then :
+                       rc=1
+               else :
+                       rc=0
+               fi
+       else :
+               rc=0
+       fi
+
+               fi
+               if test $rc -ne 0; then :
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else :
 
                { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_4ARGS_VFS_RENAME 1
+#define HAVE_PDE_DATA 1
 _ACEOF
 
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+               fi
+       fi
 
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                                                                               { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 5 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 5 args... " >&6; }
+
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+       { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() requires const struct path *" >&5
+$as_echo_n "checking whether set_fs_pwd() requires const struct path *... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16926,17 +16365,18 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                       #include <linux/fs.h>
+               #include <linux/spinlock.h>
+               #include <linux/fs_struct.h>
+               #include <linux/path.h>
+               void (*const set_fs_pwd_func)
+                       (struct fs_struct *, const struct path *)
+                       = set_fs_pwd;
 
 int
 main (void)
 {
 
-                       vfs_rename((struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode *) NULL,
-                               (struct dentry *) NULL,
-                               (struct inode **) NULL);
+               return 0;
 
   ;
   return 0;
@@ -16961,11 +16401,11 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_5ARGS_VFS_RENAME 1
+#define HAVE_SET_FS_PWD_WITH_CONST 1
 _ACEOF
 
 
@@ -16973,10 +16413,6 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                                                                                                                       { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 6 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 6 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -16987,18 +16423,18 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-                               #include <linux/fs.h>
+                       #include <linux/spinlock.h>
+                       #include <linux/fs_struct.h>
+                       #include <linux/path.h>
+                       void (*const set_fs_pwd_func)
+                               (struct fs_struct *, struct path *)
+                               = set_fs_pwd;
 
 int
 main (void)
 {
 
-                               vfs_rename((struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode *) NULL,
-                                       (struct dentry *) NULL,
-                                       (struct inode **) NULL,
-                                       (unsigned int) 0);
+                       return 0;
 
   ;
   return 0;
@@ -17023,20 +16459,15 @@ _ACEOF
   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-                               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_6ARGS_VFS_RENAME 1
-_ACEOF
-
+                       { $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: error: no" >&5
-$as_echo "$as_me: error: no" >&2;}
+                       { { $as_echo "$as_me:$LINENO: error: unknown" >&5
+$as_echo "$as_me: error: unknown" >&2;}
    { (exit 1); exit 1; }; }
 
 
        rm -Rf build
 
 
-
-
-
-fi
-
-       rm -Rf build
-
-
+       EXTRA_KCFLAGS="$tmp_flags"
 
 
        { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether io_schedule_timeout() is available" >&5
+$as_echo_n "checking whether io_schedule_timeout() is available... " >&6; }
+
+
+
+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/sched.h>
+
+int
+main (void)
+{
+
+               (void) io_schedule_timeout(1);
+
+  ;
+  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
+  rc=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ rc=1
+
+
+fi
+
+       rm -Rf build
+
+
+       if test $rc -ne 0; then :
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+       else
+               if test "x$enable_linux_builtin" != xyes; then
+
+       grep -q -E '[[:space:]]io_schedule_timeout[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in ; do
+                       grep -q -E "EXPORT_SYMBOL.*(io_schedule_timeout)" \
+                               "$LINUX_OBJ/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then :
+                       rc=1
+               else :
+                       rc=0
+               fi
+       else :
+               rc=0
+       fi
+
+               fi
+               if test $rc -ne 0; then :
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else :
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IO_SCHEDULE_TIMEOUT 1
+_ACEOF
+
+
+               fi
+       fi
+
+
+
        { $as_echo "$as_me:$LINENO: checking whether kernel_write() takes loff_t pointer" >&5
 $as_echo_n "checking whether kernel_write() takes loff_t pointer... " >&6; }
        tmp_flags="$EXTRA_KCFLAGS"
@@ -19808,7 +19339,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.6, which was
+This file was extended by spl $as_me 0.7.8, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19871,7 +19402,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.6
+spl config.status 0.7.8
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 8c1be40d76b8d2162981edb8e5b1180acfe17c4a..49ff14f526e08e330e1c91ec8a92683d90445ea6 100644 (file)
@@ -39,7 +39,28 @@ subdir = include
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 788a4ad88d4012ce39b3799357129baffe25012d..1b4319550a206a67fdbbbc6653462f05b862de56 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/fs
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 33ccc684e25a59854c24ed5d6f7c8d7f92b42f2c..881a4cd26ed9a535ead658786053e2b95cfbc8fb 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_FS_FS_SUBR_H
-#define _SPL_FS_FS_SUBR_H
+#define        _SPL_FS_FS_SUBR_H
 
 #endif /* SPL_FS_FS_SUBR_H */
index 36653a4a363b040ebc4e9f5c7965d45a30626b0e..65ea52992a484f146261f0e573783c7e0a55985a 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/linux
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 2c911a64baac1e5eccb93fcd523e72e75a727ffd..173b3806fd8b0c328d2eeee38c98a17d88c31646 100644 (file)
@@ -26,7 +26,8 @@
 #define _SPL_MATH64_COMPAT_H
 
 #ifndef abs64
-#define abs64(x)       ({ uint64_t t = (x) >> 63; ((x) ^ t) - t; })
+/* CSTYLED */
+#define        abs64(x)        ({ uint64_t t = (x) >> 63; ((x) ^ t) - t; })
 #endif
 
 #endif /* _SPL_MATH64_COMPAT_H */
index e45df2d5d6f2d5dd937fd3a6cca42a61a9d55899..403cd41c871b7216647c85d82ad25d4234ab3dd2 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/rpc
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index b57b4bd73cb3006635961535fdaf18f9e12ce8e1..915ace5144d5974b9a5c4d4a16c362f6d685bf10 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_RPC_TYPES_H
-#define _SPL_RPC_TYPES_H
+#define        _SPL_RPC_TYPES_H
 
 typedef int bool_t;
 
index d0f06b55f6f1a0cb632bfe43e697177f83bc630c..dc46f516da8ed77cf9765b2cf01ff6c94a83defa 100644 (file)
@@ -20,7 +20,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_RPC_XDR_H
-#define _SPL_RPC_XDR_H
+#define        _SPL_RPC_XDR_H
 
 #include <sys/types.h>
 #include <rpc/types.h>
@@ -36,11 +36,10 @@ enum xdr_op {
 struct xdr_ops;
 
 typedef struct {
-       struct xdr_ops *x_ops;      /* Also used to let caller know if
-                                      xdrmem_create() succeeds (sigh..) */
-       caddr_t         x_addr;     /* Current buffer addr */
-       caddr_t         x_addr_end; /* End of the buffer */
-       enum xdr_op     x_op;       /* Stream direction */
+       struct xdr_ops  *x_ops; /* Let caller know xdrmem_create() succeeds */
+       caddr_t         x_addr; /* Current buffer addr */
+       caddr_t         x_addr_end;     /* End of the buffer */
+       enum xdr_op     x_op;   /* Stream direction */
 } XDR;
 
 typedef bool_t (*xdrproc_t)(XDR *xdrs, void *ptr);
@@ -56,13 +55,13 @@ struct xdr_ops {
        bool_t (*xdr_opaque)(XDR *, caddr_t, const uint_t);
        bool_t (*xdr_string)(XDR *, char **, const uint_t);
        bool_t (*xdr_array)(XDR *, caddr_t *, uint_t *, const uint_t,
-                           const uint_t, const xdrproc_t);
+           const uint_t, const xdrproc_t);
 };
 
 /*
  * XDR control operator.
  */
-#define XDR_GET_BYTES_AVAIL 1
+#define        XDR_GET_BYTES_AVAIL 1
 
 struct xdr_bytesrec {
        bool_t xc_is_last_record;
@@ -74,11 +73,12 @@ struct xdr_bytesrec {
  */
 void xdrmem_create(XDR *xdrs, const caddr_t addr, const uint_t size,
     const enum xdr_op op);
-#define xdr_destroy(xdrs) ((void) 0) /* Currently not needed. If needed later,
-                                        we'll add it to struct xdr_ops */
 
-#define xdr_control(xdrs, req, info) (xdrs)->x_ops->xdr_control((xdrs),        \
-                                         (req), (info))
+/* Currently not needed. If needed later, we'll add it to struct xdr_ops */
+#define        xdr_destroy(xdrs) ((void) 0)
+
+#define        xdr_control(xdrs, req, info) \
+       (xdrs)->x_ops->xdr_control((xdrs), (req), (info))
 
 /*
  * For precaution, the following are defined as static inlines instead of macros
@@ -89,40 +89,40 @@ void xdrmem_create(XDR *xdrs, const caddr_t addr, const uint_t size,
  */
 static inline bool_t xdr_char(XDR *xdrs, char *cp)
 {
-       return xdrs->x_ops->xdr_char(xdrs, cp);
+       return (xdrs->x_ops->xdr_char(xdrs, cp));
 }
 
 static inline bool_t xdr_u_short(XDR *xdrs, unsigned short *usp)
 {
-       return xdrs->x_ops->xdr_u_short(xdrs, usp);
+       return (xdrs->x_ops->xdr_u_short(xdrs, usp));
 }
 
 static inline bool_t xdr_short(XDR *xdrs, short *sp)
 {
-       BUILD_BUG_ON(sizeof(short) != 2);
-       return xdrs->x_ops->xdr_u_short(xdrs, (unsigned short *) sp);
+       BUILD_BUG_ON(sizeof (short) != 2);
+       return (xdrs->x_ops->xdr_u_short(xdrs, (unsigned short *) sp));
 }
 
 static inline bool_t xdr_u_int(XDR *xdrs, unsigned *up)
 {
-       return xdrs->x_ops->xdr_u_int(xdrs, up);
+       return (xdrs->x_ops->xdr_u_int(xdrs, up));
 }
 
 static inline bool_t xdr_int(XDR *xdrs, int *ip)
 {
-       BUILD_BUG_ON(sizeof(int) != 4);
-       return xdrs->x_ops->xdr_u_int(xdrs, (unsigned *) ip);
+       BUILD_BUG_ON(sizeof (int) != 4);
+       return (xdrs->x_ops->xdr_u_int(xdrs, (unsigned *)ip));
 }
 
 static inline bool_t xdr_u_longlong_t(XDR *xdrs, u_longlong_t *ullp)
 {
-       return xdrs->x_ops->xdr_u_longlong_t(xdrs, ullp);
+       return (xdrs->x_ops->xdr_u_longlong_t(xdrs, ullp));
 }
 
 static inline bool_t xdr_longlong_t(XDR *xdrs, longlong_t *llp)
 {
-       BUILD_BUG_ON(sizeof(longlong_t) != 8);
-       return xdrs->x_ops->xdr_u_longlong_t(xdrs, (u_longlong_t *) llp);
+       BUILD_BUG_ON(sizeof (longlong_t) != 8);
+       return (xdrs->x_ops->xdr_u_longlong_t(xdrs, (u_longlong_t *)llp));
 }
 
 /*
@@ -130,7 +130,7 @@ static inline bool_t xdr_longlong_t(XDR *xdrs, longlong_t *llp)
  */
 static inline bool_t xdr_opaque(XDR *xdrs, caddr_t cp, const uint_t cnt)
 {
-       return xdrs->x_ops->xdr_opaque(xdrs, cp, cnt);
+       return (xdrs->x_ops->xdr_opaque(xdrs, cp, cnt));
 }
 
 /*
@@ -139,7 +139,7 @@ static inline bool_t xdr_opaque(XDR *xdrs, caddr_t cp, const uint_t cnt)
  */
 static inline bool_t xdr_string(XDR *xdrs, char **sp, const uint_t maxsize)
 {
-       return xdrs->x_ops->xdr_string(xdrs, sp, maxsize);
+       return (xdrs->x_ops->xdr_string(xdrs, sp, maxsize));
 }
 
 /*
index c5676aadb7b916dc4a94be1317db6970d07f82ad..0765d82caa32ce47dd3b67a1e8486fcc6f730086 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/sharefs
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index fc248a233516b4123e704072c546d373e10a400a..13f0d9ad2b92abae0ea5111cd6e3ee2793fe2b98 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SHARE_H
-#define _SPL_SHARE_H
+#define        _SPL_SHARE_H
 
 #endif /* SPL_SHARE_H */
index bb24490d92e44103a7ed3ac200f720700cab23a5..a31a0af89e82dc1e08d40544949b315f8eb04bbe 100644 (file)
 \*****************************************************************************/
 
 #ifndef _DEBUG_CTL_H
-#define _DEBUG_CTL_H
+#define        _DEBUG_CTL_H
 
 /*
  * Contains shared definitions which both the user space
  * and kernel space portions of splat must agree on.
  */
 typedef struct spl_debug_header {
-        int ph_len;
-        int ph_flags;
-        int ph_subsys;
-        int ph_mask;
-        int ph_cpu_id;
-        int ph_sec;
-        long ph_usec;
-        int ph_stack;
-        int ph_pid;
-        int ph_line_num;
+       int ph_len;
+       int ph_flags;
+       int ph_subsys;
+       int ph_mask;
+       int ph_cpu_id;
+       int ph_sec;
+       long ph_usec;
+       int ph_stack;
+       int ph_pid;
+       int ph_line_num;
 } spl_debug_header_t;
 
 #endif /* _DEBUG_CTL_H */
index 15fd01b542c4d9fd5ca44518f8b7e22863576a79..d049551ca3ff72a9db6e14fa323916982052c2e6 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPLAT_CTL_H
-#define _SPLAT_CTL_H
+#define        _SPLAT_CTL_H
 
 #include <linux/types.h>
 
  * ensure 32-bit/64-bit interoperability over ioctl()'s only types with
  * fixed sizes can be used.
  */
-#define SPLAT_NAME                     "splatctl"
-#define SPLAT_DEV                      "/dev/splatctl"
+#define        SPLAT_NAME                      "splatctl"
+#define        SPLAT_DEV                       "/dev/splatctl"
 
-#define SPLAT_NAME_SIZE                        20
-#define SPLAT_DESC_SIZE                        60
+#define        SPLAT_NAME_SIZE                 20
+#define        SPLAT_DESC_SIZE                 60
 
 typedef struct splat_user {
        char name[SPLAT_NAME_SIZE];     /* Short name */
@@ -72,38 +72,38 @@ typedef struct splat_cmd {
 } splat_cmd_t;
 
 /* Valid ioctls */
-#define SPLAT_CFG                      _IOWR('f', 101, splat_cfg_t)
-#define SPLAT_CMD                      _IOWR('f', 102, splat_cmd_t)
+#define        SPLAT_CFG                       _IOWR('f', 101, splat_cfg_t)
+#define        SPLAT_CMD                       _IOWR('f', 102, splat_cmd_t)
 
 /* Valid configuration commands */
-#define SPLAT_CFG_BUFFER_CLEAR         0x001   /* Clear text buffer */
-#define SPLAT_CFG_BUFFER_SIZE          0x002   /* Resize text buffer */
-#define SPLAT_CFG_SUBSYSTEM_COUNT      0x101   /* Number of subsystem */
-#define SPLAT_CFG_SUBSYSTEM_LIST       0x102   /* List of N subsystems */
-#define SPLAT_CFG_TEST_COUNT           0x201   /* Number of tests */
-#define SPLAT_CFG_TEST_LIST            0x202   /* List of N tests */
+#define        SPLAT_CFG_BUFFER_CLEAR          0x001   /* Clear text buffer */
+#define        SPLAT_CFG_BUFFER_SIZE           0x002   /* Resize text buffer */
+#define        SPLAT_CFG_SUBSYSTEM_COUNT       0x101   /* Number of subsystem */
+#define        SPLAT_CFG_SUBSYSTEM_LIST        0x102   /* List of N subsystems */
+#define        SPLAT_CFG_TEST_COUNT            0x201   /* Number of tests */
+#define        SPLAT_CFG_TEST_LIST             0x202   /* List of N tests */
 
 /*
  * Valid subsystem and test commands are defined in each subsystem as
  * SPLAT_SUBSYSTEM_*.  We do need to be careful to avoid collisions, the
  * currently defined subsystems are as follows:
  */
-#define SPLAT_SUBSYSTEM_KMEM           0x0100
-#define SPLAT_SUBSYSTEM_TASKQ          0x0200
-#define SPLAT_SUBSYSTEM_KRNG           0x0300
-#define SPLAT_SUBSYSTEM_MUTEX          0x0400
-#define SPLAT_SUBSYSTEM_CONDVAR                0x0500
-#define SPLAT_SUBSYSTEM_THREAD         0x0600
-#define SPLAT_SUBSYSTEM_RWLOCK         0x0700
-#define SPLAT_SUBSYSTEM_TIME           0x0800
-#define SPLAT_SUBSYSTEM_VNODE          0x0900
-#define SPLAT_SUBSYSTEM_KOBJ           0x0a00
-#define SPLAT_SUBSYSTEM_ATOMIC         0x0b00
-#define SPLAT_SUBSYSTEM_LIST           0x0c00
-#define SPLAT_SUBSYSTEM_GENERIC                0x0d00
-#define SPLAT_SUBSYSTEM_CRED           0x0e00
-#define SPLAT_SUBSYSTEM_ZLIB           0x0f00
-#define SPLAT_SUBSYSTEM_LINUX          0x1000
-#define SPLAT_SUBSYSTEM_UNKNOWN                0xff00
+#define        SPLAT_SUBSYSTEM_KMEM            0x0100
+#define        SPLAT_SUBSYSTEM_TASKQ           0x0200
+#define        SPLAT_SUBSYSTEM_KRNG            0x0300
+#define        SPLAT_SUBSYSTEM_MUTEX           0x0400
+#define        SPLAT_SUBSYSTEM_CONDVAR         0x0500
+#define        SPLAT_SUBSYSTEM_THREAD          0x0600
+#define        SPLAT_SUBSYSTEM_RWLOCK          0x0700
+#define        SPLAT_SUBSYSTEM_TIME            0x0800
+#define        SPLAT_SUBSYSTEM_VNODE           0x0900
+#define        SPLAT_SUBSYSTEM_KOBJ            0x0a00
+#define        SPLAT_SUBSYSTEM_ATOMIC          0x0b00
+#define        SPLAT_SUBSYSTEM_LIST            0x0c00
+#define        SPLAT_SUBSYSTEM_GENERIC         0x0d00
+#define        SPLAT_SUBSYSTEM_CRED            0x0e00
+#define        SPLAT_SUBSYSTEM_ZLIB            0x0f00
+#define        SPLAT_SUBSYSTEM_LINUX           0x1000
+#define        SPLAT_SUBSYSTEM_UNKNOWN         0xff00
 
 #endif /* _SPLAT_CTL_H */
index dc0f31466be8ae4facdff2ff15d2d215469cd47a..d0cf1e01dc0ae9f6d803f9ff81ef7e3572b008d0 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_STRINGS_H
-#define _SPL_STRINGS_H
+#define        _SPL_STRINGS_H
 
 #endif /* SPL_STRINGS_H */
index 4e41f8eab768b93c73e03cbf4463850721a7f26f..7b30b0254fad4c0f9b8e60bc44f6b4d11c384833 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/sys
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index f4a3de5994d0f780229c010ad509dc632ecedfa1..34f4508f23ed15daa5cff31def3cda9cc2de0a76 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_ACL_H
-#define _SPL_ACL_H
+#define        _SPL_ACL_H
 
 #include <sys/types.h>
 
 typedef struct ace {
-        uid_t a_who;
-        uint32_t a_access_mask;
-        uint16_t a_flags;
-        uint16_t a_type;
+       uid_t a_who;
+       uint32_t a_access_mask;
+       uint16_t a_flags;
+       uint16_t a_type;
 } ace_t;
 
 typedef struct ace_object {
-        uid_t           a_who;          /* uid or gid */
-        uint32_t        a_access_mask;  /* read,write,... */
-        uint16_t        a_flags;        /* see below */
-        uint16_t        a_type;         /* allow or deny */
-        uint8_t         a_obj_type[16]; /* obj type */
-        uint8_t         a_inherit_obj_type[16];  /* inherit obj */
+       uid_t           a_who;          /* uid or gid */
+       uint32_t        a_access_mask;  /* read,write,... */
+       uint16_t        a_flags;        /* see below */
+       uint16_t        a_type;         /* allow or deny */
+       uint8_t         a_obj_type[16]; /* obj type */
+       uint8_t         a_inherit_obj_type[16]; /* inherit obj */
 } ace_object_t;
 
-#define MAX_ACL_ENTRIES                                        1024
+#define        MAX_ACL_ENTRIES                                 1024
 
-#define ACE_READ_DATA                                   0x00000001
-#define ACE_LIST_DIRECTORY                              0x00000001
-#define ACE_WRITE_DATA                                  0x00000002
-#define ACE_ADD_FILE                                    0x00000002
-#define ACE_APPEND_DATA                                 0x00000004
-#define ACE_ADD_SUBDIRECTORY                            0x00000004
-#define ACE_READ_NAMED_ATTRS                            0x00000008
-#define ACE_WRITE_NAMED_ATTRS                           0x00000010
-#define ACE_EXECUTE                                     0x00000020
-#define ACE_DELETE_CHILD                                0x00000040
-#define ACE_READ_ATTRIBUTES                             0x00000080
-#define ACE_WRITE_ATTRIBUTES                            0x00000100
-#define ACE_DELETE                                      0x00010000
-#define ACE_READ_ACL                                    0x00020000
-#define ACE_WRITE_ACL                                   0x00040000
-#define ACE_WRITE_OWNER                                 0x00080000
-#define ACE_SYNCHRONIZE                                 0x00100000
+#define        ACE_READ_DATA                                   0x00000001
+#define        ACE_LIST_DIRECTORY                              0x00000001
+#define        ACE_WRITE_DATA                                  0x00000002
+#define        ACE_ADD_FILE                                    0x00000002
+#define        ACE_APPEND_DATA                                 0x00000004
+#define        ACE_ADD_SUBDIRECTORY                            0x00000004
+#define        ACE_READ_NAMED_ATTRS                            0x00000008
+#define        ACE_WRITE_NAMED_ATTRS                           0x00000010
+#define        ACE_EXECUTE                                     0x00000020
+#define        ACE_DELETE_CHILD                                0x00000040
+#define        ACE_READ_ATTRIBUTES                             0x00000080
+#define        ACE_WRITE_ATTRIBUTES                            0x00000100
+#define        ACE_DELETE                                      0x00010000
+#define        ACE_READ_ACL                                    0x00020000
+#define        ACE_WRITE_ACL                                   0x00040000
+#define        ACE_WRITE_OWNER                                 0x00080000
+#define        ACE_SYNCHRONIZE                                 0x00100000
 
-#define ACE_FILE_INHERIT_ACE                            0x0001
-#define ACE_DIRECTORY_INHERIT_ACE                       0x0002
-#define ACE_NO_PROPAGATE_INHERIT_ACE                    0x0004
-#define ACE_INHERIT_ONLY_ACE                            0x0008
-#define ACE_SUCCESSFUL_ACCESS_ACE_FLAG                  0x0010
-#define ACE_FAILED_ACCESS_ACE_FLAG                      0x0020
-#define ACE_IDENTIFIER_GROUP                            0x0040
-#define ACE_INHERITED_ACE                               0x0080
-#define ACE_OWNER                                       0x1000
-#define ACE_GROUP                                       0x2000
-#define ACE_EVERYONE                                    0x4000
+#define        ACE_FILE_INHERIT_ACE                            0x0001
+#define        ACE_DIRECTORY_INHERIT_ACE                       0x0002
+#define        ACE_NO_PROPAGATE_INHERIT_ACE                    0x0004
+#define        ACE_INHERIT_ONLY_ACE                            0x0008
+#define        ACE_SUCCESSFUL_ACCESS_ACE_FLAG                  0x0010
+#define        ACE_FAILED_ACCESS_ACE_FLAG                      0x0020
+#define        ACE_IDENTIFIER_GROUP                            0x0040
+#define        ACE_INHERITED_ACE                               0x0080
+#define        ACE_OWNER                                       0x1000
+#define        ACE_GROUP                                       0x2000
+#define        ACE_EVERYONE                                    0x4000
 
-#define ACE_ACCESS_ALLOWED_ACE_TYPE                     0x0000
-#define ACE_ACCESS_DENIED_ACE_TYPE                      0x0001
-#define ACE_SYSTEM_AUDIT_ACE_TYPE                       0x0002
-#define ACE_SYSTEM_ALARM_ACE_TYPE                       0x0003
+#define        ACE_ACCESS_ALLOWED_ACE_TYPE                     0x0000
+#define        ACE_ACCESS_DENIED_ACE_TYPE                      0x0001
+#define        ACE_SYSTEM_AUDIT_ACE_TYPE                       0x0002
+#define        ACE_SYSTEM_ALARM_ACE_TYPE                       0x0003
 
-#define ACL_AUTO_INHERIT                                0x0001
-#define ACL_PROTECTED                                   0x0002
-#define ACL_DEFAULTED                                   0x0004
-#define ACL_FLAGS_ALL (ACL_AUTO_INHERIT|ACL_PROTECTED|ACL_DEFAULTED)
+#define        ACL_AUTO_INHERIT                                0x0001
+#define        ACL_PROTECTED                                   0x0002
+#define        ACL_DEFAULTED                                   0x0004
+#define        ACL_FLAGS_ALL   (ACL_AUTO_INHERIT|ACL_PROTECTED|ACL_DEFAULTED)
 
-#define ACE_ACCESS_ALLOWED_COMPOUND_ACE_TYPE            0x04
-#define ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE              0x05
-#define ACE_ACCESS_DENIED_OBJECT_ACE_TYPE               0x06
-#define ACE_SYSTEM_AUDIT_OBJECT_ACE_TYPE                0x07
-#define ACE_SYSTEM_ALARM_OBJECT_ACE_TYPE                0x08
-#define ACE_ACCESS_ALLOWED_CALLBACK_ACE_TYPE            0x09
-#define ACE_ACCESS_DENIED_CALLBACK_ACE_TYPE             0x0A
-#define ACE_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE     0x0B
-#define ACE_ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE      0x0C
-#define ACE_SYSTEM_AUDIT_CALLBACK_ACE_TYPE              0x0D
-#define ACE_SYSTEM_ALARM_CALLBACK_ACE_TYPE              0x0E
-#define ACE_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE       0x0F
-#define ACE_SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE       0x10
+#define        ACE_ACCESS_ALLOWED_COMPOUND_ACE_TYPE            0x04
+#define        ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE              0x05
+#define        ACE_ACCESS_DENIED_OBJECT_ACE_TYPE               0x06
+#define        ACE_SYSTEM_AUDIT_OBJECT_ACE_TYPE                0x07
+#define        ACE_SYSTEM_ALARM_OBJECT_ACE_TYPE                0x08
+#define        ACE_ACCESS_ALLOWED_CALLBACK_ACE_TYPE            0x09
+#define        ACE_ACCESS_DENIED_CALLBACK_ACE_TYPE             0x0A
+#define        ACE_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE     0x0B
+#define        ACE_ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE      0x0C
+#define        ACE_SYSTEM_AUDIT_CALLBACK_ACE_TYPE              0x0D
+#define        ACE_SYSTEM_ALARM_CALLBACK_ACE_TYPE              0x0E
+#define        ACE_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE       0x0F
+#define        ACE_SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE       0x10
 
-#define ACE_ALL_TYPES   0x001F
+#define        ACE_ALL_TYPES   0x001F
 
-#define ACE_TYPE_FLAGS (ACE_OWNER|ACE_GROUP|ACE_EVERYONE|ACE_IDENTIFIER_GROUP)
+#define        ACE_TYPE_FLAGS  (ACE_OWNER|ACE_GROUP|ACE_EVERYONE|ACE_IDENTIFIER_GROUP)
 
-#define ACE_ALL_PERMS   (ACE_READ_DATA|ACE_LIST_DIRECTORY|ACE_WRITE_DATA| \
+/* BEGIN CSTYLED */
+#define        ACE_ALL_PERMS   (ACE_READ_DATA|ACE_LIST_DIRECTORY|ACE_WRITE_DATA| \
      ACE_ADD_FILE|ACE_APPEND_DATA|ACE_ADD_SUBDIRECTORY|ACE_READ_NAMED_ATTRS| \
      ACE_WRITE_NAMED_ATTRS|ACE_EXECUTE|ACE_DELETE_CHILD|ACE_READ_ATTRIBUTES| \
      ACE_WRITE_ATTRIBUTES|ACE_DELETE|ACE_READ_ACL|ACE_WRITE_ACL| \
      ACE_WRITE_OWNER|ACE_SYNCHRONIZE)
+/* END CSTYLED */
 
-#define VSA_ACE                                         0x0010
-#define VSA_ACECNT                                      0x0020
-#define VSA_ACE_ALLTYPES                                0x0040
-#define VSA_ACE_ACLFLAGS                                0x0080
+#define        VSA_ACE                                         0x0010
+#define        VSA_ACECNT                                      0x0020
+#define        VSA_ACE_ALLTYPES                                0x0040
+#define        VSA_ACE_ACLFLAGS                                0x0080
 
 #endif /* _SPL_ACL_H */
index 67af71371c65032377149033fa2c471d7477c6d4..c96cc52cd81dd673e161d795b30242f5e1b983af 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ACL_IMPL_H
-#define _SPL_ACL_IMPL_H
+#define        _SPL_ACL_IMPL_H
 
 #endif /* _SPL_ACL_IMPL_H */
index 07b460ef790e12e9ba7287b3173f987ceb435582..1f730e223b8261eb3e7111a09df9e9a0bbdf7b7a 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ATOMIC_H
-#define _SPL_ATOMIC_H
+#define        _SPL_ATOMIC_H
 
 #include <linux/module.h>
 #include <linux/spinlock.h>
@@ -91,7 +91,7 @@ atomic_inc_32_nv(volatile uint32_t *target)
        nv = ++(*target);
        spin_unlock(&atomic32_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint32_t
@@ -103,7 +103,7 @@ atomic_dec_32_nv(volatile uint32_t *target)
        nv = --(*target);
        spin_unlock(&atomic32_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint32_t
@@ -116,7 +116,7 @@ atomic_add_32_nv(volatile uint32_t *target, uint32_t delta)
        nv = *target;
        spin_unlock(&atomic32_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint32_t
@@ -129,12 +129,11 @@ atomic_sub_32_nv(volatile uint32_t *target, uint32_t delta)
        nv = *target;
        spin_unlock(&atomic32_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint32_t
-atomic_cas_32(volatile uint32_t *target,  uint32_t cmp,
-              uint32_t newval)
+atomic_cas_32(volatile uint32_t *target,  uint32_t cmp, uint32_t newval)
 {
        uint32_t rc;
 
@@ -145,7 +144,7 @@ atomic_cas_32(volatile uint32_t *target,  uint32_t cmp,
 
        spin_unlock(&atomic32_lock);
 
-       return rc;
+       return (rc);
 }
 
 static __inline__ uint32_t
@@ -158,7 +157,7 @@ atomic_swap_32(volatile uint32_t *target,  uint32_t newval)
        *target = newval;
        spin_unlock(&atomic32_lock);
 
-       return rc;
+       return (rc);
 }
 
 static __inline__ void
@@ -202,7 +201,7 @@ atomic_inc_64_nv(volatile uint64_t *target)
        nv = ++(*target);
        spin_unlock(&atomic64_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint64_t
@@ -214,7 +213,7 @@ atomic_dec_64_nv(volatile uint64_t *target)
        nv = --(*target);
        spin_unlock(&atomic64_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint64_t
@@ -227,7 +226,7 @@ atomic_add_64_nv(volatile uint64_t *target, uint64_t delta)
        nv = *target;
        spin_unlock(&atomic64_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint64_t
@@ -240,12 +239,11 @@ atomic_sub_64_nv(volatile uint64_t *target, uint64_t delta)
        nv = *target;
        spin_unlock(&atomic64_lock);
 
-       return nv;
+       return (nv);
 }
 
 static __inline__ uint64_t
-atomic_cas_64(volatile uint64_t *target,  uint64_t cmp,
-              uint64_t newval)
+atomic_cas_64(volatile uint64_t *target,  uint64_t cmp, uint64_t newval)
 {
        uint64_t rc;
 
@@ -255,7 +253,7 @@ atomic_cas_64(volatile uint64_t *target,  uint64_t cmp,
                *target = newval;
        spin_unlock(&atomic64_lock);
 
-       return rc;
+       return (rc);
 }
 
 static __inline__ uint64_t
@@ -268,31 +266,31 @@ atomic_swap_64(volatile uint64_t *target,  uint64_t newval)
        *target = newval;
        spin_unlock(&atomic64_lock);
 
-       return rc;
+       return (rc);
 }
 
 #else /* ATOMIC_SPINLOCK */
 
-#define atomic_inc_32(v)       atomic_inc((atomic_t *)(v))
-#define atomic_dec_32(v)       atomic_dec((atomic_t *)(v))
-#define atomic_add_32(v, i)    atomic_add((i), (atomic_t *)(v))
-#define atomic_sub_32(v, i)    atomic_sub((i), (atomic_t *)(v))
-#define atomic_inc_32_nv(v)    atomic_inc_return((atomic_t *)(v))
-#define atomic_dec_32_nv(v)    atomic_dec_return((atomic_t *)(v))
-#define atomic_add_32_nv(v, i) atomic_add_return((i), (atomic_t *)(v))
-#define atomic_sub_32_nv(v, i) atomic_sub_return((i), (atomic_t *)(v))
-#define atomic_cas_32(v, x, y) atomic_cmpxchg((atomic_t *)(v), x, y)
-#define atomic_swap_32(v, x)   atomic_xchg((atomic_t *)(v), x)
-#define atomic_inc_64(v)       atomic64_inc((atomic64_t *)(v))
-#define atomic_dec_64(v)       atomic64_dec((atomic64_t *)(v))
-#define atomic_add_64(v, i)    atomic64_add((i), (atomic64_t *)(v))
-#define atomic_sub_64(v, i)    atomic64_sub((i), (atomic64_t *)(v))
-#define atomic_inc_64_nv(v)    atomic64_inc_return((atomic64_t *)(v))
-#define atomic_dec_64_nv(v)    atomic64_dec_return((atomic64_t *)(v))
-#define atomic_add_64_nv(v, i) atomic64_add_return((i), (atomic64_t *)(v))
-#define atomic_sub_64_nv(v, i) atomic64_sub_return((i), (atomic64_t *)(v))
-#define atomic_cas_64(v, x, y) atomic64_cmpxchg((atomic64_t *)(v), x, y)
-#define atomic_swap_64(v, x)   atomic64_xchg((atomic64_t *)(v), x)
+#define        atomic_inc_32(v)        atomic_inc((atomic_t *)(v))
+#define        atomic_dec_32(v)        atomic_dec((atomic_t *)(v))
+#define        atomic_add_32(v, i)     atomic_add((i), (atomic_t *)(v))
+#define        atomic_sub_32(v, i)     atomic_sub((i), (atomic_t *)(v))
+#define        atomic_inc_32_nv(v)     atomic_inc_return((atomic_t *)(v))
+#define        atomic_dec_32_nv(v)     atomic_dec_return((atomic_t *)(v))
+#define        atomic_add_32_nv(v, i)  atomic_add_return((i), (atomic_t *)(v))
+#define        atomic_sub_32_nv(v, i)  atomic_sub_return((i), (atomic_t *)(v))
+#define        atomic_cas_32(v, x, y)  atomic_cmpxchg((atomic_t *)(v), x, y)
+#define        atomic_swap_32(v, x)    atomic_xchg((atomic_t *)(v), x)
+#define        atomic_inc_64(v)        atomic64_inc((atomic64_t *)(v))
+#define        atomic_dec_64(v)        atomic64_dec((atomic64_t *)(v))
+#define        atomic_add_64(v, i)     atomic64_add((i), (atomic64_t *)(v))
+#define        atomic_sub_64(v, i)     atomic64_sub((i), (atomic64_t *)(v))
+#define        atomic_inc_64_nv(v)     atomic64_inc_return((atomic64_t *)(v))
+#define        atomic_dec_64_nv(v)     atomic64_dec_return((atomic64_t *)(v))
+#define        atomic_add_64_nv(v, i)  atomic64_add_return((i), (atomic64_t *)(v))
+#define        atomic_sub_64_nv(v, i)  atomic64_sub_return((i), (atomic64_t *)(v))
+#define        atomic_cas_64(v, x, y)  atomic64_cmpxchg((atomic64_t *)(v), x, y)
+#define        atomic_swap_64(v, x)    atomic64_xchg((atomic64_t *)(v), x)
 
 #endif /* ATOMIC_SPINLOCK */
 
@@ -300,15 +298,15 @@ atomic_swap_64(volatile uint64_t *target,  uint64_t newval)
 static __inline__ void *
 atomic_cas_ptr(volatile void *target,  void *cmp, void *newval)
 {
-       return (void *)atomic_cas_64((volatile uint64_t *)target,
-                                    (uint64_t)cmp, (uint64_t)newval);
+       return ((void *)atomic_cas_64((volatile uint64_t *)target,
+           (uint64_t)cmp, (uint64_t)newval));
 }
 #else /* _LP64 */
 static __inline__ void *
 atomic_cas_ptr(volatile void *target,  void *cmp, void *newval)
 {
-       return (void *)atomic_cas_32((volatile uint32_t *)target,
-                                    (uint32_t)cmp, (uint32_t)newval);
+       return ((void *)atomic_cas_32((volatile uint32_t *)target,
+           (uint32_t)cmp, (uint32_t)newval));
 }
 #endif /* _LP64 */
 
index 5fb609c93487944253a1edc0c909c39df2f9d7a7..48c5e26e23d8213d1cb245dd7466de6636278e1f 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ATTR_H
-#define _SPL_ATTR_H
+#define        _SPL_ATTR_H
 
 #endif /* SPL_ATTR_H */
index e4acb0b7dee47b3de11f2d28eb8008db9be95549..d940c14b7b63913d84ea185d1dab8c45f6cb79f7 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_BITMAP_H
-#define _SPL_BITMAP_H
+#define        _SPL_BITMAP_H
 
 #endif /* SPL_BITMAP_H */
index 4e032ad2f828a384d1da7eb572e96e84640bfd18..d83a47813597371050a3ee06bc9dd087881988a7 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_BOOTCONF_H
-#define _SPL_BOOTCONF_H
+#define        _SPL_BOOTCONF_H
 
 #endif /* SPL_BOOTCONF_H */
index a562ec9f94bb1e2deb2599919265e10b8e576167..ac54bc24034305a2c227ba3a1caf385e30e47c57 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_BOOTPROPS_H
-#define _SPL_BOOTPROPS_H
+#define        _SPL_BOOTPROPS_H
 
 #endif /* SPL_BOOTPROPS_H */
index 8596c835c3c1faece7f58ea6b8f150e2df924bc5..6879188492ea93d999176a64f42e69ee5f72c27f 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_BUF_H
-#define _SPL_BUF_H
+#define        _SPL_BUF_H
 
 #endif /* SPL_BUF_H */
index 184b52d51dddd5d269541f07e389b1cfc790c0f1..2034f221fc5423ea9f99646434074827a83807af 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_BYTEORDER_H
-#define _SPL_BYTEORDER_H
+#define        _SPL_BYTEORDER_H
 
 #include <asm/byteorder.h>
 #include <sys/isa_defs.h>
 
-#define LE_16(x)       cpu_to_le16(x)
-#define LE_32(x)       cpu_to_le32(x)
-#define LE_64(x)       cpu_to_le64(x)
-#define BE_16(x)       cpu_to_be16(x)
-#define BE_32(x)       cpu_to_be32(x)
-#define BE_64(x)       cpu_to_be64(x)
+#define        LE_16(x)        cpu_to_le16(x)
+#define        LE_32(x)        cpu_to_le32(x)
+#define        LE_64(x)        cpu_to_le64(x)
+#define        BE_16(x)        cpu_to_be16(x)
+#define        BE_32(x)        cpu_to_be32(x)
+#define        BE_64(x)        cpu_to_be64(x)
 
-#define BE_IN8(xa) \
+#define        BE_IN8(xa) \
        *((uint8_t *)(xa))
 
-#define BE_IN16(xa) \
+#define        BE_IN16(xa) \
        (((uint16_t)BE_IN8(xa) << 8) | BE_IN8((uint8_t *)(xa)+1))
 
-#define BE_IN32(xa) \
+#define        BE_IN32(xa) \
        (((uint32_t)BE_IN16(xa) << 16) | BE_IN16((uint8_t *)(xa)+2))
 
 #ifdef _BIG_ENDIAN
 static __inline__ uint64_t
-htonll(uint64_t n) {
+htonll(uint64_t n)
+{
        return (n);
 }
 
 static __inline__ uint64_t
-ntohll(uint64_t n) {
+ntohll(uint64_t n)
+{
        return (n);
 }
 #else
 static __inline__ uint64_t
-htonll(uint64_t n) {
+htonll(uint64_t n)
+{
        return ((((uint64_t)htonl(n)) << 32) + htonl(n >> 32));
 }
 
 static __inline__ uint64_t
-ntohll(uint64_t n) {
+ntohll(uint64_t n)
+{
        return ((((uint64_t)ntohl(n)) << 32) + ntohl(n >> 32));
 }
 #endif
index fbe4128f80e84feb64c70435069f5e4a908335f7..33e12b8bb984163b2eb963308aab12f9432e920c 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_CALLB_H
-#define _SPL_CALLB_H
+#define        _SPL_CALLB_H
 
 #include <linux/module.h>
 #include <sys/mutex.h>
 
-#define CALLB_CPR_ASSERT(cp)           ASSERT(MUTEX_HELD((cp)->cc_lockp));
+#define        CALLB_CPR_ASSERT(cp)            ASSERT(MUTEX_HELD((cp)->cc_lockp));
 
 typedef struct callb_cpr {
-        kmutex_t        *cc_lockp;
+       kmutex_t        *cc_lockp;
 } callb_cpr_t;
 
-#define CALLB_CPR_INIT(cp, lockp, func, name)   {               \
-        (cp)->cc_lockp = lockp;                                 \
+#define        CALLB_CPR_INIT(cp, lockp, func, name)   {               \
+       (cp)->cc_lockp = lockp;                                 \
 }
 
-#define CALLB_CPR_SAFE_BEGIN(cp) {                              \
+#define        CALLB_CPR_SAFE_BEGIN(cp) {                              \
        CALLB_CPR_ASSERT(cp);                                   \
 }
 
-#define CALLB_CPR_SAFE_END(cp, lockp) {                         \
+#define        CALLB_CPR_SAFE_END(cp, lockp) {                         \
        CALLB_CPR_ASSERT(cp);                                   \
 }
 
-#define CALLB_CPR_EXIT(cp) {                                    \
-        ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
-        mutex_exit((cp)->cc_lockp);                             \
+#define        CALLB_CPR_EXIT(cp) {                                    \
+       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
+       mutex_exit((cp)->cc_lockp);                             \
 }
 
 #endif  /* _SPL_CALLB_H */
-
index 0d9fbcbc49498b107f2f6b43d679a29cffc507c2..c7eea687d8867d2bab6e418b95126c87379877ed 100644 (file)
@@ -22,7 +22,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CALLO_H
-#define _SPL_CALLO_H
+#define        _SPL_CALLO_H
 
 /*
  * Callout flags:
@@ -44,9 +44,9 @@
  *      Legacy interfaces timeout() and realtime_timeout() pass this flag
  *      to timeout_generic() to indicate that a 32-bit ID should be allocated.
  */
-#define CALLOUT_FLAG_ROUNDUP            0x1
-#define CALLOUT_FLAG_ABSOLUTE           0x2
-#define CALLOUT_FLAG_HRESTIME           0x4
-#define CALLOUT_FLAG_32BIT              0x8
+#define        CALLOUT_FLAG_ROUNDUP            0x1
+#define        CALLOUT_FLAG_ABSOLUTE           0x2
+#define        CALLOUT_FLAG_HRESTIME           0x4
+#define        CALLOUT_FLAG_32BIT              0x8
 
 #endif  /* _SPL_CALLB_H */
index 1291510ecc37f7fcb48d1233fe2971439cc1add1..f1c077e5b9752a475630bbe6c22c5f5df6a60cfa 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_CMN_ERR_H
-#define _SPL_CMN_ERR_H
+#define        _SPL_CMN_ERR_H
 
 #include <sys/varargs.h>
 
-#define CE_CONT         0       /* continuation         */
-#define CE_NOTE         1       /* notice               */
-#define CE_WARN         2       /* warning              */
-#define CE_PANIC        3       /* panic                */
-#define CE_IGNORE       4       /* print nothing        */
+#define        CE_CONT         0 /* continuation */
+#define        CE_NOTE         1 /* notice */
+#define        CE_WARN         2 /* warning */
+#define        CE_PANIC        3 /* panic */
+#define        CE_IGNORE       4 /* print nothing */
 
 extern void cmn_err(int, const char *, ...);
 extern void vcmn_err(int, const char *, __va_list);
 extern void vpanic(const char *, __va_list);
 
-#define fm_panic       panic
+#define        fm_panic        panic
 
 #endif /* SPL_CMN_ERR_H */
index 55822f0e521bff5e147a700b518af83bf30622ae..1a946cefe4432052fe90d0db0de6a3f106f88ff9 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_COMPRESS_H
-#define _SPL_COMPRESS_H
+#define        _SPL_COMPRESS_H
 
 #endif /* SPL_COMPRESS_H */
index 5479e75ad652ccae08899a72cc93384962affd73..5fcc9068a3cd983686c4b3c9f034f7eca0c3a939 100644 (file)
@@ -56,6 +56,7 @@ extern void __cv_wait(kcondvar_t *, kmutex_t *);
 extern void __cv_wait_io(kcondvar_t *, kmutex_t *);
 extern void __cv_wait_sig(kcondvar_t *, kmutex_t *);
 extern clock_t __cv_timedwait(kcondvar_t *, kmutex_t *, clock_t);
+extern clock_t __cv_timedwait_io(kcondvar_t *, kmutex_t *, clock_t);
 extern clock_t __cv_timedwait_sig(kcondvar_t *, kmutex_t *, clock_t);
 extern clock_t cv_timedwait_hires(kcondvar_t *, kmutex_t *, hrtime_t,
     hrtime_t res, int flag);
@@ -71,6 +72,7 @@ extern void __cv_broadcast(kcondvar_t *c);
 #define        cv_wait_sig(cvp, mp)                    __cv_wait_sig(cvp, mp)
 #define        cv_wait_interruptible(cvp, mp)          cv_wait_sig(cvp, mp)
 #define        cv_timedwait(cvp, mp, t)                __cv_timedwait(cvp, mp, t)
+#define        cv_timedwait_io(cvp, mp, t)             __cv_timedwait_io(cvp, mp, t)
 #define        cv_timedwait_sig(cvp, mp, t)            __cv_timedwait_sig(cvp, mp, t)
 #define        cv_timedwait_interruptible(cvp, mp, t)  cv_timedwait_sig(cvp, mp, t)
 #define        cv_signal(cvp)                          __cv_signal(cvp)
index eece0c79892ef24c9442e2aebb5f2aa6b20191de..e4c8f6c733f84cbb560c315a39776fe8d22c029e 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CONF_H
-#define _SPL_CONF_H
+#define        _SPL_CONF_H
 
 #endif /* SPL_CONF_H */
index 76ef61838b7536c019469415b82f02d96ae3f2af..dfa38c9944b0492af5754da841be5cd741f2f2fe 100644 (file)
 void
 console_vprintf(const char *fmt, va_list args)
 {
-        vprintk(fmt, args);
+       vprintk(fmt, args);
 }
 
 void
 console_printf(const char *fmt, ...)
 {
-        va_list args;
+       va_list args;
 
-        va_start(args, fmt);
-        console_vprintf(fmt, args);
-        va_end(args);
+       va_start(args, fmt);
+       console_vprintf(fmt, args);
+       va_end(args);
 }
 
 #endif /* _SPL_CONSOLE_H */
index fddeed6d0e5417f45f1ead53c65647265494a48b..eb819ffe10bce974f77fce7bfa4f086eba392923 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CPUPART_H
-#define _SPL_CPUPART_H
+#define        _SPL_CPUPART_H
 
 #endif /* SPL_CPUPART_H */
index 1284f940f0d5bba932a458e65a7506264126d674..6963067ebe7913fca7cd61578a13a34c60e4f460 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CPUVAR_H
-#define _SPL_CPUVAR_H
+#define        _SPL_CPUVAR_H
 
 #endif /* SPL_CPUVAR_H */
index 1981f35794a928ce3bfe788f11a5f653e066a322..c14384ae7a125446b2e3b549535f006c9fef6ac7 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CRC32_H
-#define _SPL_CRC32_H
+#define        _SPL_CRC32_H
 
 #endif /* SPL_CRC32_H */
index 2ad7115e0a3b22c7d287686aee4c7e5696d98065..3e96a073cd082ab8c8dab2a9d3b5c46f346e86e0 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CRED_H
-#define _SPL_CRED_H
+#define        _SPL_CRED_H
 
 #include <linux/module.h>
 #include <sys/types.h>
@@ -68,7 +68,7 @@ extern gid_t crgetrgid(const cred_t *cr);
 extern gid_t crgetsgid(const cred_t *cr);
 extern gid_t crgetfsgid(const cred_t *cr);
 extern int crgetngroups(const cred_t *cr);
-extern gid_t * crgetgroups(const cred_t *cr);
+extern gid_t *crgetgroups(const cred_t *cr);
 extern int groupmember(gid_t gid, const cred_t *cr);
 
 #endif  /* _SPL_CRED_H */
index 52037f9a1b24a2129eef8aec932258c527239b58..86f29de63f169e35d6f120f44495dfd178cb2d10 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_CTYPE_H
-#define _SPL_CTYPE_H
+#define        _SPL_CTYPE_H
 
 #include <linux/ctype.h>
 
index 2fa1388fd6dc804b201c1ca13ef8abf64bbf4c6d..b0af3cbb8343d05dfba9db3550e0f1405da3e4df 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_DDI_H
-#define _SPL_DDI_H
+#define        _SPL_DDI_H
 
 #endif /* SPL_DDI_H */
index 98ccbaf05ad74a9b372a9cb0f69ed0b0e5c8df20..b523ea18920449b62861016846e8d17b6133cff0 100644 (file)
@@ -54,20 +54,24 @@ int spl_panic(const char *file, const char *func, int line,
     const char *fmt, ...);
 void spl_dumpstack(void);
 
+/* BEGIN CSTYLED */
 #define        PANIC(fmt, a...)                                                \
        spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a)
 
 #define        VERIFY(cond)                                                    \
-       (void)(unlikely(!(cond)) &&                                     \
+       (void) (unlikely(!(cond)) &&                                    \
            spl_panic(__FILE__, __FUNCTION__, __LINE__,                 \
            "%s", "VERIFY(" #cond ") failed\n"))
 
-#define        VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST)                  \
-       (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&                    \
-           spl_panic(__FILE__, __FUNCTION__, __LINE__,                 \
-           "VERIFY3(" #LEFT " " #OP " " #RIGHT ") "                    \
-           "failed (" FMT " " #OP " " FMT ")\n",                       \
-           CAST (LEFT), CAST (RIGHT)))
+#define        VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST)  do {            \
+               TYPE _verify3_left = (TYPE)(LEFT);                              \
+               TYPE _verify3_right = (TYPE)(RIGHT);                            \
+               if (!(_verify3_left OP _verify3_right))                 \
+                   spl_panic(__FILE__, __FUNCTION__, __LINE__,         \
+                   "VERIFY3(" #LEFT " " #OP " " #RIGHT ") "            \
+                   "failed (" FMT " " #OP " " FMT ")\n",               \
+                   CAST (_verify3_left), CAST (_verify3_right));       \
+       } while (0)
 
 #define        VERIFY3B(x,y,z) VERIFY3_IMPL(x, y, z, boolean_t, "%d", (boolean_t))
 #define        VERIFY3S(x,y,z) VERIFY3_IMPL(x, y, z, int64_t, "%lld", (long long))
@@ -120,6 +124,7 @@ void spl_dumpstack(void);
        ((void)((!!(A) == !!(B)) || \
            spl_panic(__FILE__, __FUNCTION__, __LINE__, \
            "(" #A ") is equivalent to (" #B ")")))
+/* END CSTYLED */
 
 #endif /* NDEBUG */
 
index 68f75da577bd8ddfcfd021dd70e5e4a52afc9632..8a3358822e908b8b031bfa7d24c095f87b87af02 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_DIRENT_H
-#define _SPL_DIRENT_H
+#define        _SPL_DIRENT_H
 
 #endif /* SPL_DIRENT_H */
index c3077a73fcf11622f49761c63ef2ec26f77f73f7..7f5ec85c0eb79292af1fcd0093f7b7ab0a2f0e94 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_DISP_H
-#define _SPL_DISP_H
+#define        _SPL_DISP_H
 
 #include <linux/preempt.h>
 
index bea5a5bbc993b632b4e5e1c2e879102be9666dfb..6b1b941703a589d4a0973ccc25c2100f8e90b6c7 100644 (file)
@@ -52,7 +52,7 @@ static inline void dfl_free(dkioc_free_list_t *dfl) {
 }
 
 static inline dkioc_free_list_t *dfl_alloc(uint64_t dfl_num_exts, int flags) {
-       return vmem_zalloc(DFL_SZ(dfl_num_exts), flags);
+       return (vmem_zalloc(DFL_SZ(dfl_num_exts), flags));
 }
 
 #endif /* _SPL_DKIOC_UTIL_H */
index 99d16c8855ef8ead1ec4b2a12e0abd55c35c809b..2014af56a9ea7f1e0dae0f24155ffe43dabc5560 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_DNLC_H
-#define _SPL_DNLC_H
+#define        _SPL_DNLC_H
 
 #endif /* SPL_DNLC_H */
index 1b45058ad442b135f6b6e44db89fbc6ece63fc0c..84c5b764f2bb7eb5a2e658d921c7a249a610f462 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_DUMPHDR_H
-#define _SPL_DUMPHDR_H
+#define        _SPL_DUMPHDR_H
 
 #endif /* SPL_DUMPHDR_H */
index c392364237dfaa81e6c09214bbc78180fe93cef8..96739a10e71f7f450be7adbe73f3ba311046d9fe 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_EFI_PARTITION_H
-#define _SPL_EFI_PARTITION_H
+#define        _SPL_EFI_PARTITION_H
 
 #endif /* SPL_EFI_PARTITION_H */
index 64d8482dc219fe91c9b7bdb0f31807e58161d704..6b151bb6ed5c578bc909ae5ba9d7b12b5a695516 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ERRNO_H
-#define _SPL_ERRNO_H
+#define        _SPL_ERRNO_H
 
 #endif /* SPL_ERRNO_H */
index 88b7a6928c7dade7e694a6632d6e2ce0e1e4c56d..d71c39b9c706b904a5035eaa1c981f119a5ebafe 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_FCNTL_H
-#define _SPL_FCNTL_H
+#define        _SPL_FCNTL_H
 
 #include <asm/fcntl.h>
 
-#define F_FREESP 11
+#define        F_FREESP 11
 
 #ifdef CONFIG_64BIT
 typedef struct flock flock64_t;
index 67b301c6efc8ea9109017b65340fc2d8b63bd04a..20fa7dcc73f890e92893de9c68abf687e844ce3e 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_FILE_H
-#define _SPL_FILE_H
+#define        _SPL_FILE_H
 
 #define        FIGNORECASE     0x00080000
 #define        FKIOCTL         0x80000000
index c44224dbf11b78370c7f9f8bc511c38f8f28e3ad..5547fffededceaf5a49611d95557e01671462288 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/sys/fm
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 2acce59516a567eca8bcffd96c9efe9e78991f87..1a4e0a4dfe9a79eb5f25f13c3cae8b3e0bcb3212 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/sys/fs
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index a5df1298d3a18a071d4de38707e39967df0a7fbe..b4745f48590485d9b6196d4f4b85aea316dc6bb2 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SWAPNODE_H
-#define _SPL_SWAPNODE_H
+#define        _SPL_SWAPNODE_H
 
 #endif /* SPL_SWAPNODE_H */
index 3618c655c961ef0747ca178dfb84d90f07c214c0..f524a025762ab6d4114cc311db8a322b44d3fbe5 100644 (file)
@@ -22,8 +22,8 @@
 \*****************************************************************************/
 
 #ifndef _SPL_IDMAP_H
-#define _SPL_IDMAP_H
+#define        _SPL_IDMAP_H
 
-#define IDMAP_WK_CREATOR_OWNER_UID     2147483648U
+#define        IDMAP_WK_CREATOR_OWNER_UID      2147483648U
 
 #endif /* SPL_IDMAP_H */
index 64f0a11020f9a1997a33fbe5c8a2c4a4169c5ad5..689d9d7b33baac5af1b502db2ce09847ef28f1d0 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_INT_LIMITS_H
-#define _SPL_INT_LIMITS_H
+#define        _SPL_INT_LIMITS_H
 
 #endif /* SPL_INT_LIMITS_H */
index 582fded20cdc43a5d98584d418e73d22abcddb82..fd4dafa6f181c49c50dd1bf4cdfcc2480cb19027 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_INT_TYPES_H
-#define _SPL_INT_TYPES_H
+#define        _SPL_INT_TYPES_H
 
 #include <sys/inttypes.h>
 
index 82e555cddf8318a02a382db1b81223def37e0990..e63383ecd219e341871df394ab9aaa81da6a092d 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_INTTYPES_H
-#define _SPL_INTTYPES_H
+#define        _SPL_INTTYPES_H
 
 #endif /* SPL_INTTYPES_H */
index 738795c708c429616e7baba6627e2a830d07278e..55597828054b010234d5a198818548ee1794ff24 100644 (file)
 #if defined(__x86_64) || defined(__x86_64__)
 
 #if !defined(__x86_64)
-#define __x86_64
+#define        __x86_64
 #endif
 
 #if !defined(__amd64)
-#define __amd64
+#define        __amd64
 #endif
 
 #if !defined(__x86)
-#define __x86
+#define        __x86
 #endif
 
 #if !defined(_LP64)
-#define _LP64
+#define        _LP64
 #endif
 
-#define _ALIGNMENT_REQUIRED            1
+#define        _ALIGNMENT_REQUIRED     1
 
 
 /* i386 arch specific defines */
 #elif defined(__i386) || defined(__i386__)
 
 #if !defined(__i386)
-#define __i386
+#define        __i386
 #endif
 
 #if !defined(__x86)
-#define __x86
+#define        __x86
 #endif
 
 #if !defined(_ILP32)
-#define _ILP32
+#define        _ILP32
 #endif
 
-#define _ALIGNMENT_REQUIRED            0
+#define        _ALIGNMENT_REQUIRED     0
 
 /* powerpc (ppc64) arch specific defines */
 #elif defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__)
 
 #if !defined(__powerpc)
-#define __powerpc
+#define        __powerpc
 #endif
 
 #if !defined(__powerpc__)
-#define __powerpc__
+#define        __powerpc__
 #endif
 
 #if defined(__powerpc64__)
 #if !defined(_LP64)
-#define _LP64
+#define        _LP64
 #endif
 #else
 #if !defined(_ILP32)
-#define _ILP32
+#define        _ILP32
 #endif
 #endif
 
  * Illumos doesn't define _ALIGNMENT_REQUIRED for PPC, so default to 1
  * out of paranoia.
  */
-#define _ALIGNMENT_REQUIRED            1
+#define        _ALIGNMENT_REQUIRED     1
 
 /* arm arch specific defines */
 #elif defined(__arm) || defined(__arm__) || defined(__aarch64__)
 
 #if !defined(__arm)
-#define __arm
+#define        __arm
 #endif
 
 #if !defined(__arm__)
-#define __arm__
+#define        __arm__
 #endif
 
 #if defined(__aarch64__)
 #if !defined(_LP64)
-#define _LP64
+#define        _LP64
 #endif
 #else
 #if !defined(_ILP32)
-#define _ILP32
+#define        _ILP32
 #endif
 #endif
 
 #if defined(__ARMEL__) || defined(__AARCH64EL__)
-#define _LITTLE_ENDIAN
+#define        _LITTLE_ENDIAN
 #else
-#define _BIG_ENDIAN
+#define        _BIG_ENDIAN
 #endif
 
 /*
  * Illumos doesn't define _ALIGNMENT_REQUIRED for ARM, so default to 1
  * out of paranoia.
  */
-#define _ALIGNMENT_REQUIRED            1
+#define        _ALIGNMENT_REQUIRED     1
 
 /* sparc arch specific defines */
 #elif defined(__sparc) || defined(__sparc__)
 
 #if !defined(__sparc)
-#define __sparc
+#define        __sparc
 #endif
 
 #if !defined(__sparc__)
-#define __sparc__
+#define        __sparc__
 #endif
 
 #if defined(__arch64__)
 #if !defined(_LP64)
-#define _LP64
+#define        _LP64
 #endif
 #else
 #if !defined(_ILP32)
-#define _ILP32
+#define        _ILP32
 #endif
 #endif
 
-#define _BIG_ENDIAN
-#define _SUNOS_VTOC_16
-#define _ALIGNMENT_REQUIRED            1
+#define        _BIG_ENDIAN
+#define        _SUNOS_VTOC_16
+#define        _ALIGNMENT_REQUIRED     1
 
 /* s390 arch specific defines */
 #elif defined(__s390__)
  * Illumos doesn't define _ALIGNMENT_REQUIRED for s390, so default to 1
  * out of paranoia.
  */
-#define _ALIGNMENT_REQUIRED            1
+#define        _ALIGNMENT_REQUIRED     1
 
 /* MIPS arch specific defines */
 #elif defined(__mips__)
  * Illumos doesn't define _ALIGNMENT_REQUIRED for MIPS, so default to 1
  * out of paranoia.
  */
-#define _ALIGNMENT_REQUIRED            1
+#define        _ALIGNMENT_REQUIRED     1
 
 #else
 /*
 #include <sys/byteorder.h>
 
 #if defined(__LITTLE_ENDIAN) && !defined(_LITTLE_ENDIAN)
-#define _LITTLE_ENDIAN __LITTLE_ENDIAN
+#define        _LITTLE_ENDIAN __LITTLE_ENDIAN
 #endif
 
 #if defined(__BIG_ENDIAN) && !defined(_BIG_ENDIAN)
-#define _BIG_ENDIAN __BIG_ENDIAN
+#define        _BIG_ENDIAN __BIG_ENDIAN
 #endif
 
 #if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)
index 3d67b51a8a14b786633c2fff0554b71d5f9cee1c..ce31d35bffaaa486f261bbc62c46aaecf87a15b7 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_KIDMAP_H
-#define _SPL_KIDMAP_H
+#define        _SPL_KIDMAP_H
 
 #include <sys/idmap.h>
 
index 334449a8e234b0e3193e98abecbe018f7d61ed0c..a688843ff3f0555ca5ea8daea6598e5a9e443129 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_KOBJ_H
-#define _SPL_KOBJ_H
+#define        _SPL_KOBJ_H
 
 #include <sys/vnode.h>
 
index faf6b81dabfe95ed3418793a972fdc929ef51e27..2018019965e4c01ea1dd9fd0ddb20c682545a9ce 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_KSTAT_H
-#define _SPL_KSTAT_H
+#define        _SPL_KSTAT_H
 
 #include <linux/module.h>
 #include <linux/proc_compat.h>
 #include <sys/kmem.h>
 #include <sys/mutex.h>
 
-#define KSTAT_STRLEN            31
-#define KSTAT_RAW_MAX          (128*1024)
+#define        KSTAT_STRLEN            255
+#define        KSTAT_RAW_MAX           (128*1024)
 
-/* For reference valid classes are:
+/*
+ * For reference valid classes are:
  * disk, tape, net, controller, vm, kvm, hat, streams, kstat, misc
  */
 
-#define KSTAT_TYPE_RAW          0       /* can be anything; ks_ndata >= 1 */
-#define KSTAT_TYPE_NAMED        1       /* name/value pair; ks_ndata >= 1 */
-#define KSTAT_TYPE_INTR         2       /* interrupt stats; ks_ndata == 1 */
-#define KSTAT_TYPE_IO           3       /* I/O stats; ks_ndata == 1 */
-#define KSTAT_TYPE_TIMER        4       /* event timer; ks_ndata >= 1 */
-#define KSTAT_NUM_TYPES         5
-
-#define KSTAT_DATA_CHAR         0
-#define KSTAT_DATA_INT32        1
-#define KSTAT_DATA_UINT32       2
-#define KSTAT_DATA_INT64        3
-#define KSTAT_DATA_UINT64       4
-#define KSTAT_DATA_LONG         5
-#define KSTAT_DATA_ULONG        6
-#define KSTAT_DATA_STRING       7
-#define KSTAT_NUM_DATAS         8
-
-#define KSTAT_INTR_HARD         0
-#define KSTAT_INTR_SOFT         1
-#define KSTAT_INTR_WATCHDOG     2
-#define KSTAT_INTR_SPURIOUS     3
-#define KSTAT_INTR_MULTSVC      4
-#define KSTAT_NUM_INTRS         5
-
-#define KSTAT_FLAG_VIRTUAL      0x01
-#define KSTAT_FLAG_VAR_SIZE     0x02
-#define KSTAT_FLAG_WRITABLE     0x04
-#define KSTAT_FLAG_PERSISTENT   0x08
-#define KSTAT_FLAG_DORMANT      0x10
-#define KSTAT_FLAG_UNSUPPORTED  (KSTAT_FLAG_VAR_SIZE | KSTAT_FLAG_WRITABLE | \
-                                KSTAT_FLAG_PERSISTENT | KSTAT_FLAG_DORMANT)
-
-
-#define KS_MAGIC                0x9d9d9d9d
+#define        KSTAT_TYPE_RAW          0 /* can be anything; ks_ndata >= 1 */
+#define        KSTAT_TYPE_NAMED        1 /* name/value pair; ks_ndata >= 1 */
+#define        KSTAT_TYPE_INTR         2 /* interrupt stats; ks_ndata == 1 */
+#define        KSTAT_TYPE_IO           3 /* I/O stats; ks_ndata == 1 */
+#define        KSTAT_TYPE_TIMER        4 /* event timer; ks_ndata >= 1 */
+#define        KSTAT_NUM_TYPES         5
+
+#define        KSTAT_DATA_CHAR         0
+#define        KSTAT_DATA_INT32        1
+#define        KSTAT_DATA_UINT32       2
+#define        KSTAT_DATA_INT64        3
+#define        KSTAT_DATA_UINT64       4
+#define        KSTAT_DATA_LONG         5
+#define        KSTAT_DATA_ULONG        6
+#define        KSTAT_DATA_STRING       7
+#define        KSTAT_NUM_DATAS         8
+
+#define        KSTAT_INTR_HARD         0
+#define        KSTAT_INTR_SOFT         1
+#define        KSTAT_INTR_WATCHDOG     2
+#define        KSTAT_INTR_SPURIOUS     3
+#define        KSTAT_INTR_MULTSVC      4
+#define        KSTAT_NUM_INTRS         5
+
+#define        KSTAT_FLAG_VIRTUAL      0x01
+#define        KSTAT_FLAG_VAR_SIZE     0x02
+#define        KSTAT_FLAG_WRITABLE     0x04
+#define        KSTAT_FLAG_PERSISTENT   0x08
+#define        KSTAT_FLAG_DORMANT      0x10
+#define        KSTAT_FLAG_UNSUPPORTED  \
+       (KSTAT_FLAG_VAR_SIZE | KSTAT_FLAG_WRITABLE | \
+       KSTAT_FLAG_PERSISTENT | KSTAT_FLAG_DORMANT)
+
+
+#define        KS_MAGIC                0x9d9d9d9d
 
 /* Dynamic updates */
-#define KSTAT_READ              0
-#define KSTAT_WRITE             1
+#define        KSTAT_READ              0
+#define        KSTAT_WRITE             1
 
 struct kstat_s;
 typedef struct kstat_s kstat_t;
 
-typedef int kid_t;                                  /* unique kstat id */
-typedef int kstat_update_t(struct kstat_s *, int);  /* dynamic update cb */
+typedef int kid_t;                             /* unique kstat id */
+typedef int kstat_update_t(struct kstat_s *, int); /* dynamic update cb */
 
 typedef struct kstat_module {
-       char             ksm_name[KSTAT_STRLEN+1];  /* module name */
-       struct list_head ksm_module_list;           /* module linkage */
-       struct list_head ksm_kstat_list;            /* list of kstat entries */
-       struct proc_dir_entry *ksm_proc;            /* proc entry */
+       char ksm_name[KSTAT_STRLEN+1];          /* module name */
+       struct list_head ksm_module_list;       /* module linkage */
+       struct list_head ksm_kstat_list;        /* list of kstat entries */
+       struct proc_dir_entry *ksm_proc;        /* proc entry */
 } kstat_module_t;
 
 typedef struct kstat_raw_ops {
@@ -98,95 +100,96 @@ typedef struct kstat_raw_ops {
 } kstat_raw_ops_t;
 
 struct kstat_s {
-       int              ks_magic;                  /* magic value */
-        kid_t            ks_kid;                    /* unique kstat ID */
-        hrtime_t         ks_crtime;                 /* creation time */
-       hrtime_t         ks_snaptime;               /* last access time */
-        char             ks_module[KSTAT_STRLEN+1]; /* provider module name */
-        int              ks_instance;               /* provider module instance */
-        char             ks_name[KSTAT_STRLEN+1];   /* kstat name */
-        char             ks_class[KSTAT_STRLEN+1];  /* kstat class */
-        uchar_t          ks_type;                   /* kstat data type */
-        uchar_t          ks_flags;                  /* kstat flags */
-        void             *ks_data;                  /* kstat type-specific data */
-        uint_t           ks_ndata;                  /* # of type-specific data records */
-        size_t           ks_data_size;              /* size of kstat data section */
-        struct proc_dir_entry *ks_proc;             /* proc linkage */
-        kstat_update_t   *ks_update;                /* dynamic updates */
-        void             *ks_private;               /* private data */
-       kmutex_t         ks_private_lock;           /* kstat private data lock */
-       kmutex_t         *ks_lock;                  /* kstat data lock */
-        struct list_head ks_list;                   /* kstat linkage */
-       kstat_module_t   *ks_owner;                 /* kstat module linkage */
-       kstat_raw_ops_t  ks_raw_ops;                /* ops table for raw type */
-       char             *ks_raw_buf;               /* buf used for raw ops */
-       size_t           ks_raw_bufsize;            /* size of raw ops buffer */
+       int             ks_magic;               /* magic value */
+       kid_t           ks_kid;                 /* unique kstat ID */
+       hrtime_t        ks_crtime;              /* creation time */
+       hrtime_t        ks_snaptime;            /* last access time */
+       char            ks_module[KSTAT_STRLEN+1]; /* provider module name */
+       int             ks_instance;            /* provider module instance */
+       char            ks_name[KSTAT_STRLEN+1]; /* kstat name */
+       char            ks_class[KSTAT_STRLEN+1]; /* kstat class */
+       uchar_t         ks_type;                /* kstat data type */
+       uchar_t         ks_flags;               /* kstat flags */
+       void            *ks_data;               /* kstat type-specific data */
+       uint_t          ks_ndata;               /* # of data records */
+       size_t          ks_data_size;           /* size of kstat data section */
+       struct proc_dir_entry *ks_proc;         /* proc linkage */
+       kstat_update_t  *ks_update;             /* dynamic updates */
+       void            *ks_private;            /* private data */
+       kmutex_t        ks_private_lock;        /* kstat private data lock */
+       kmutex_t        *ks_lock;               /* kstat data lock */
+       struct list_head ks_list;               /* kstat linkage */
+       kstat_module_t  *ks_owner;              /* kstat module linkage */
+       kstat_raw_ops_t ks_raw_ops;             /* ops table for raw type */
+       char            *ks_raw_buf;            /* buf used for raw ops */
+       size_t          ks_raw_bufsize;         /* size of raw ops buffer */
 };
 
 typedef struct kstat_named_s {
-        char             name[KSTAT_STRLEN];        /* name of counter */
-        uchar_t          data_type;                 /* data type */
-        union {
-                char            c[16];              /* 128-bit int */
-                int32_t         i32;                /* 32-bit signed int */
-                uint32_t        ui32;               /* 32-bit unsigned int */
-                int64_t         i64;                /* 64-bit signed int */
-                uint64_t        ui64;               /* 64-bit unsigned int */
-                long            l;                  /* native signed long */
-                ulong_t         ul;                 /* native unsigned long */
-                struct {
-                        union {
-                                char *ptr;          /* NULL-term string */
-                                char __pad[8];      /* 64-bit padding */
-                        } addr;
-                        uint32_t len;               /* # bytes for strlen + '\0' */
-                } string;
-        } value;
+       char    name[KSTAT_STRLEN];     /* name of counter */
+       uchar_t data_type;              /* data type */
+       union {
+               char c[16];     /* 128-bit int */
+               int32_t i32;    /* 32-bit signed int */
+               uint32_t ui32;  /* 32-bit unsigned int */
+               int64_t i64;    /* 64-bit signed int */
+               uint64_t ui64;  /* 64-bit unsigned int */
+               long l;         /* native signed long */
+               ulong_t ul;     /* native unsigned long */
+               struct {
+                       union {
+                               char *ptr;      /* NULL-term string */
+                               char __pad[8];  /* 64-bit padding */
+                       } addr;
+                       uint32_t len;           /* # bytes for strlen + '\0' */
+               } string;
+       } value;
 } kstat_named_t;
 
-#define KSTAT_NAMED_STR_PTR(knptr) ((knptr)->value.string.addr.ptr)
-#define KSTAT_NAMED_STR_BUFLEN(knptr) ((knptr)->value.string.len)
+#define        KSTAT_NAMED_STR_PTR(knptr) ((knptr)->value.string.addr.ptr)
+#define        KSTAT_NAMED_STR_BUFLEN(knptr) ((knptr)->value.string.len)
 
 typedef struct kstat_intr {
-        uint_t intrs[KSTAT_NUM_INTRS];
+       uint_t intrs[KSTAT_NUM_INTRS];
 } kstat_intr_t;
 
 typedef struct kstat_io {
-        u_longlong_t     nread;       /* number of bytes read */
-        u_longlong_t     nwritten;    /* number of bytes written */
-        uint_t           reads;       /* number of read operations */
-        uint_t           writes;      /* number of write operations */
-        hrtime_t         wtime;       /* cumulative wait (pre-service) time */
-        hrtime_t         wlentime;    /* cumulative wait length*time product*/
-        hrtime_t         wlastupdate; /* last time wait queue changed */
-        hrtime_t         rtime;       /* cumulative run (service) time */
-        hrtime_t         rlentime;    /* cumulative run length*time product */
-        hrtime_t         rlastupdate; /* last time run queue changed */
-        uint_t           wcnt;        /* count of elements in wait state */
-        uint_t           rcnt;        /* count of elements in run state */
+       u_longlong_t    nread;          /* number of bytes read */
+       u_longlong_t    nwritten;       /* number of bytes written */
+       uint_t          reads;          /* number of read operations */
+       uint_t          writes;         /* number of write operations */
+       hrtime_t        wtime;          /* cumulative wait (pre-service) time */
+       hrtime_t        wlentime;       /* cumulative wait len*time product */
+       hrtime_t        wlastupdate;    /* last time wait queue changed */
+       hrtime_t        rtime;          /* cumulative run (service) time */
+       hrtime_t        rlentime;       /* cumulative run length*time product */
+       hrtime_t        rlastupdate;    /* last time run queue changed */
+       uint_t          wcnt;           /* count of elements in wait state */
+       uint_t          rcnt;           /* count of elements in run state */
 } kstat_io_t;
 
 typedef struct kstat_timer {
-        char         name[KSTAT_STRLEN+1]; /* event name */
-        u_longlong_t num_events;           /* number of events */
-        hrtime_t     elapsed_time;         /* cumulative elapsed time */
-        hrtime_t     min_time;             /* shortest event duration */
-        hrtime_t     max_time;             /* longest event duration */
-        hrtime_t     start_time;           /* previous event start time */
-        hrtime_t     stop_time;            /* previous event stop time */
+       char            name[KSTAT_STRLEN+1]; /* event name */
+       u_longlong_t    num_events;      /* number of events */
+       hrtime_t        elapsed_time;    /* cumulative elapsed time */
+       hrtime_t        min_time;        /* shortest event duration */
+       hrtime_t        max_time;        /* longest event duration */
+       hrtime_t        start_time;      /* previous event start time */
+       hrtime_t        stop_time;       /* previous event stop time */
 } kstat_timer_t;
 
 int spl_kstat_init(void);
 void spl_kstat_fini(void);
 
 extern void __kstat_set_raw_ops(kstat_t *ksp,
-                   int (*headers)(char *buf, size_t size),
-                   int (*data)(char *buf, size_t size, void *data),
-                   void* (*addr)(kstat_t *ksp, loff_t index));
+    int (*headers)(char *buf, size_t size),
+    int (*data)(char *buf, size_t size, void *data),
+    void* (*addr)(kstat_t *ksp, loff_t index));
+
 extern kstat_t *__kstat_create(const char *ks_module, int ks_instance,
-                            const char *ks_name, const char *ks_class,
-                            uchar_t ks_type, uint_t ks_ndata,
-                            uchar_t ks_flags);
+    const char *ks_name, const char *ks_class, uchar_t ks_type,
+    uint_t ks_ndata, uchar_t ks_flags);
+
 extern void __kstat_install(kstat_t *ksp);
 extern void __kstat_delete(kstat_t *ksp);
 extern void kstat_waitq_enter(kstat_io_t *);
@@ -194,9 +197,12 @@ extern void kstat_waitq_exit(kstat_io_t *);
 extern void kstat_runq_enter(kstat_io_t *);
 extern void kstat_runq_exit(kstat_io_t *);
 
-#define kstat_set_raw_ops(k,h,d,a)     __kstat_set_raw_ops(k,h,d,a)
-#define kstat_create(m,i,n,c,t,s,f)    __kstat_create(m,i,n,c,t,s,f)
-#define kstat_install(k)               __kstat_install(k)
-#define kstat_delete(k)                        __kstat_delete(k)
+#define        kstat_set_raw_ops(k, h, d, a) \
+    __kstat_set_raw_ops(k, h, d, a)
+#define        kstat_create(m, i, n, c, t, s, f) \
+    __kstat_create(m, i, n, c, t, s, f)
+
+#define        kstat_install(k)                __kstat_install(k)
+#define        kstat_delete(k)                 __kstat_delete(k)
 
 #endif  /* _SPL_KSTAT_H */
index 563784ae49dc557eb17186494417f794d23780f1..9aba3b42a1e5f0b211ef79147707445cae540486 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_LIST_H
-#define _SPL_LIST_H
+#define        _SPL_LIST_H
 
 #include <sys/types.h>
 #include <linux/list.h>
@@ -53,13 +53,13 @@ typedef struct list {
        list_node_t list_head;
 } list_t;
 
-#define list_d2l(a, obj) ((list_node_t *)(((char *)obj) + (a)->list_offset))
-#define list_object(a, node) ((void *)(((char *)node) - (a)->list_offset))
+#define        list_d2l(a, obj) ((list_node_t *)(((char *)obj) + (a)->list_offset))
+#define        list_object(a, node) ((void *)(((char *)node) - (a)->list_offset))
 
 static inline int
 list_is_empty(list_t *list)
 {
-       return list_empty(&list->list_head);
+       return (list_empty(&list->list_head));
 }
 
 static inline void
@@ -74,7 +74,7 @@ list_create(list_t *list, size_t size, size_t offset)
 {
        ASSERT(list);
        ASSERT(size > 0);
-       ASSERT(size >= offset + sizeof(list_node_t));
+       ASSERT(size >= offset + sizeof (list_node_t));
 
        list->list_size = size;
        list->list_offset = offset;
@@ -132,10 +132,10 @@ list_remove_head(list_t *list)
 {
        list_node_t *head = list->list_head.next;
        if (head == &list->list_head)
-               return NULL;
+               return (NULL);
 
        list_del(head);
-       return list_object(list, head);
+       return (list_object(list, head));
 }
 
 static inline void *
@@ -143,28 +143,28 @@ list_remove_tail(list_t *list)
 {
        list_node_t *tail = list->list_head.prev;
        if (tail == &list->list_head)
-               return NULL;
+               return (NULL);
 
        list_del(tail);
-       return list_object(list, tail);
+       return (list_object(list, tail));
 }
 
 static inline void *
 list_head(list_t *list)
 {
        if (list_is_empty(list))
-               return NULL;
+               return (NULL);
 
-       return list_object(list, list->list_head.next);
+       return (list_object(list, list->list_head.next));
 }
 
 static inline void *
 list_tail(list_t *list)
 {
        if (list_is_empty(list))
-               return NULL;
+               return (NULL);
 
-       return list_object(list, list->list_head.prev);
+       return (list_object(list, list->list_head.prev));
 }
 
 static inline void *
@@ -173,9 +173,9 @@ list_next(list_t *list, void *object)
        list_node_t *node = list_d2l(list, object);
 
        if (node->next != &list->list_head)
-               return list_object(list, node->next);
+               return (list_object(list, node->next));
 
-       return NULL;
+       return (NULL);
 }
 
 static inline void *
@@ -184,9 +184,9 @@ list_prev(list_t *list, void *object)
        list_node_t *node = list_d2l(list, object);
 
        if (node->prev != &list->list_head)
-               return list_object(list, node->prev);
+               return (list_object(list, node->prev));
 
-       return NULL;
+       return (NULL);
 }
 
 static inline int
@@ -201,7 +201,7 @@ spl_list_move_tail(list_t *dst, list_t *src)
        list_splice_init(&src->list_head, dst->list_head.prev);
 }
 
-#define list_move_tail(dst, src)       spl_list_move_tail(dst, src)
+#define        list_move_tail(dst, src)        spl_list_move_tail(dst, src)
 
 static inline void
 list_link_replace(list_node_t *old_node, list_node_t *new_node)
index d765b7374cf8c35dd3282d90614e0142b40322cc..8fbbc0ca42dcd9232487763fc5ef4ef711769ba9 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_MKDEV_H
-#define _SPL_MKDEV_H
+#define        _SPL_MKDEV_H
 
 #endif /* SPL_MKDEV_H */
index 66fae87d40a85d0aa585908e599d821e99300900..61ccac3ba70d504595d4fea05b18132cbb0f2149 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_MNTENT_H
-#define _SPL_MNTENT_H
+#define        _SPL_MNTENT_H
 
 #endif /* SPL_MNTENT_H */
index 8d79e5312d1fd11b79905ea9a18b9b0152fcef28..36dc9a6653ab316e6865b7f973e0931008a5ec05 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_MODCTL_H
-#define _SPL_MODCTL_H
+#define        _SPL_MODCTL_H
 
 #endif /* SPL_MODCTL_H */
index d09965e4a1157b891a361755ce04dda8dc107ded..1b43e65c1738551340087822b3283c0889f9076e 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_MODE_H
-#define _SPL_MODE_H
+#define        _SPL_MODE_H
 
-#define IFTOVT(mode)   vn_mode_to_vtype(mode)
-#define VTTOIF(vtype)  vn_vtype_to_mode(vtype)
-#define MAKEIMODE(T, M) (VTTOIF(T) | ((M) & ~S_IFMT))
+#define        IFTOVT(mode)    vn_mode_to_vtype(mode)
+#define        VTTOIF(vtype)   vn_vtype_to_mode(vtype)
+#define        MAKEIMODE(T, M) (VTTOIF(T) | ((M) & ~S_IFMT))
 
 #endif /* SPL_MODE_H */
index ca1796d7d750e01767595fcc3ac1ab011406e456..3e3d8e55e37a11a035d0f601f089c53bae3adefa 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_MOUNT_H
-#define _SPL_MOUNT_H
+#define        _SPL_MOUNT_H
 
 #endif /* SPL_MOUNT_H */
index 8cbab7c477ebc590910e4c528fb7893ab12d3700..c7084b3c375db6f9e1dafc6af1e6e60ab50df30b 100644 (file)
@@ -84,13 +84,13 @@ spl_mutex_lockdep_on_maybe(kmutex_t *mp)                    \
                lockdep_on();                                   \
 }
 #else  /* CONFIG_LOCKDEP */
-#define spl_mutex_set_type(mp, type)
-#define spl_mutex_lockdep_off_maybe(mp)
-#define spl_mutex_lockdep_on_maybe(mp)
+#define        spl_mutex_set_type(mp, type)
+#define        spl_mutex_lockdep_off_maybe(mp)
+#define        spl_mutex_lockdep_on_maybe(mp)
 #endif /* CONFIG_LOCKDEP */
 
 /*
- * 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 mutex functions (lock/unlock)
  * will be correctly located in the users code which is important
  * for the built in kernel lock analysis tools
@@ -113,6 +113,7 @@ spl_mutex_lockdep_on_maybe(kmutex_t *mp)                    \
        VERIFY3P(mutex_owner(mp), ==, NULL);                    \
 }
 
+/* BEGIN CSTYLED */
 #define        mutex_tryenter(mp)                                      \
 ({                                                             \
        int _rc_;                                               \
@@ -124,6 +125,7 @@ spl_mutex_lockdep_on_maybe(kmutex_t *mp)                    \
                                                                \
        _rc_;                                                   \
 })
+/* END CSTYLED */
 
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 #define        mutex_enter_nested(mp, subclass)                        \
index 511756272b64246e31684fa009cdde52efc93997..7480adf37f05fb6c7fbf9dc6531ec5bf241517e4 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_NOTE_H
-#define _SPL_NOTE_H
+#define        _SPL_NOTE_H
 
 #endif /* SPL_NOTE_H */
index e3ebd8c8486eb7bfc7a8a9ba417c36844e1b120b..bf55ee7e60bc6354f914e8bfd92a5a30b5df7a6b 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_OPEN_H
-#define _SPL_OPEN_H
+#define        _SPL_OPEN_H
 
 #endif /* SPL_OPEN_H */
index 665f641b5e8956433827a9642f3ad1462d73d271..274db42736f53bc145840070ef01323cb193fde7 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_PARAM_H
-#define _SPL_PARAM_H
+#define        _SPL_PARAM_H
 
 #include <asm/page.h>
 
 /* Pages to bytes and back */
-#define ptob(pages)                    ((pages) << PAGE_SHIFT)
-#define btop(bytes)                    ((bytes) >> PAGE_SHIFT)
+#define        ptob(pages)                     ((pages) << PAGE_SHIFT)
+#define        btop(bytes)                     ((bytes) >> PAGE_SHIFT)
 
-#define MAXUID                         UINT32_MAX
+#define        MAXUID                          UINT32_MAX
 
 #endif /* SPL_PARAM_H */
index 71ea441cb7e2dbdc149526532bf0a444de852232..812114e50c1549b6dd7f39062c139bf829d68e6c 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_PATHNAME_H
-#define _SPL_PATHNAME_H
+#define        _SPL_PATHNAME_H
 
 typedef struct pathname {
        char    *pn_buf;                /* underlying storage */
index 45e724bc52310778d7498a3613de00a40d4e084e..2892ce126a2cdee654b007d25af508d51759c5f4 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_POLICY_H
-#define _SPL_POLICY_H
+#define        _SPL_POLICY_H
 
-#define        secpolicy_fs_unmount(c,vfs)                     (0)
+#define        secpolicy_fs_unmount(c, vfs)                    (0)
 #define        secpolicy_nfs(c)                                (0)
-#define        secpolicy_sys_config(c,co)                      (0)
+#define        secpolicy_sys_config(c, co)                     (0)
 #define        secpolicy_zfs(c)                                (0)
 #define        secpolicy_zinject(c)                            (0)
-#define        secpolicy_vnode_setids_setgids(c,id)            (0)
+#define        secpolicy_vnode_setids_setgids(c, id)           (0)
 #define        secpolicy_vnode_setid_retain(c, sr)             (0)
 #define        secpolicy_setid_clear(v, c)                     (0)
-#define        secpolicy_vnode_any_access(c,vp,o)              (0)
-#define        secpolicy_vnode_access2(c,cp,o,m1,m2)           (0)
-#define        secpolicy_vnode_chown(c,o)                      (0)
-#define        secpolicy_vnode_setdac(c,o)                     (0)
+#define        secpolicy_vnode_any_access(c, vp, o)            (0)
+#define        secpolicy_vnode_access2(c, cp, o, m1, m2)       (0)
+#define        secpolicy_vnode_chown(c, o)                     (0)
+#define        secpolicy_vnode_setdac(c, o)                    (0)
 #define        secpolicy_vnode_remove(c)                       (0)
-#define        secpolicy_vnode_setattr(c,v,a,o,f,func,n)       (0)
+#define        secpolicy_vnode_setattr(c, v, a, o, f, func, n) (0)
 #define        secpolicy_xvattr(x, o, c, t)                    (0)
 #define        secpolicy_vnode_stky_modify(c)                  (0)
-#define        secpolicy_setid_setsticky_clear(v,a,o,c)        (0)
+#define        secpolicy_setid_setsticky_clear(v, a, o, c)     (0)
 #define        secpolicy_basic_link(c)                         (0)
 
 #endif /* SPL_POLICY_H */
index bf6a0bb7da72c4ed63e964dd4d018cf2a0586bb2..410bb2f8ba1a957478861d6c9f3eb2e965f99d48 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_POOL_H
-#define _SPL_POOL_H
+#define        _SPL_POOL_H
 
 #include <sys/pset.h>
 
index f1507a89e3568d4e53123dbeb735d68c31f9906f..ef11a62416090b8d9c78872842f525859884c440 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_PRIV_IMPL_H
-#define _SPL_PRIV_IMPL_H
+#define        _SPL_PRIV_IMPL_H
 
 #endif /* _SPL_PRIV_IMPL_H */
index dbaf4162f261feb4b44ccd5f0614897d25ac921c..f926e1ef09661674d556b0d3705673d8bae346a7 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_PROC_H
-#define _SPL_PROC_H
+#define        _SPL_PROC_H
 
 #endif /* SPL_PROC_H */
index 60b1a211bc19b871d8af0c499c1194230b75c324..2e325c399554a780f051ce710d58e1575510ac37 100644 (file)
@@ -25,7 +25,7 @@
 #ifndef        _SPL_PROCESSOR_H
 #define        _SPL_PROCESSOR_H
 
-#define getcpuid() smp_processor_id()
+#define        getcpuid() smp_processor_id()
 
 typedef int    processorid_t;
 
index 2723d310b57398bed06542baaf8e8da3408d14ee..d5886002bf7abee01126783d128975b6596e7436 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_PSET_H
-#define _SPL_PSET_H
+#define        _SPL_PSET_H
 
 typedef int psetid_t;
 
 /* special processor set id's */
-#define PS_NONE         -1
-#define PS_QUERY        -2
-#define PS_MYID         -3
-#define PS_SOFT         -4
-#define PS_HARD         -5
-#define PS_QUERY_TYPE   -6
+#define        PS_NONE         -1
+#define        PS_QUERY        -2
+#define        PS_MYID         -3
+#define        PS_SOFT         -4
+#define        PS_HARD         -5
+#define        PS_QUERY_TYPE   -6
 
 #endif /* SPL_PSET_H */
index 64f70ee52f4a000d5543b6438267d64724c55af5..1f05a58d47da011f0643c3ce5a7d5b776ac04f48 100644 (file)
@@ -31,8 +31,8 @@
 static __inline__ int
 random_get_bytes(uint8_t *ptr, size_t len)
 {
-       get_random_bytes((void *)ptr,(int)len);
-       return 0;
+       get_random_bytes((void *)ptr, (int)len);
+       return (0);
 }
 
 extern int random_get_pseudo_bytes(uint8_t *ptr, size_t len);
index 49a3417d150cc4b1974a762cc7304100c2c214a4..fec0ab2eab73c8d152972158935ff2dd06c6fb82 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_REFSTR_H
-#define _SPL_REFSTR_H
+#define        _SPL_REFSTR_H
 
 #endif /* SPL_REFSTR_H */
index fe336555fb89fc772b23b0fc84568442b1b4a4a2..0ff0a75be37a53f5469afe15b1b459251c6058a0 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_RESOURCE_H
-#define _SPL_RESOURCE_H
+#define        _SPL_RESOURCE_H
 
 #include <linux/resource.h>
 
index ffb7b90b6f2863563ba983a812ff1cdbfb031660..325dfc499c98c75a728fb8767c1b3818c9441a49 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_RWLOCK_H
-#define _SPL_RWLOCK_H
+#define        _SPL_RWLOCK_H
 
 #include <sys/types.h>
 #include <linux/rwsem.h>
@@ -55,7 +55,7 @@ typedef struct {
 #endif /* CONFIG_LOCKDEP */
 } krwlock_t;
 
-#define SEM(rwp)       (&(rwp)->rw_rwlock)
+#define        SEM(rwp)        (&(rwp)->rw_rwlock)
 
 static inline void
 spl_rw_set_owner(krwlock_t *rwp)
@@ -81,9 +81,9 @@ static inline kthread_t *
 rw_owner(krwlock_t *rwp)
 {
 #ifdef CONFIG_RWSEM_SPIN_ON_OWNER
-       return SEM(rwp)->owner;
+       return (SEM(rwp)->owner);
 #else
-       return rwp->rw_owner;
+       return (rwp->rw_owner);
 #endif
 }
 
@@ -106,9 +106,9 @@ spl_rw_lockdep_on_maybe(krwlock_t *rwp)                     \
                lockdep_on();                           \
 }
 #else  /* CONFIG_LOCKDEP */
-#define spl_rw_set_type(rwp, type)
-#define spl_rw_lockdep_off_maybe(rwp)
-#define spl_rw_lockdep_on_maybe(rwp)
+#define        spl_rw_set_type(rwp, type)
+#define        spl_rw_lockdep_off_maybe(rwp)
+#define        spl_rw_lockdep_on_maybe(rwp)
 #endif /* CONFIG_LOCKDEP */
 
 static inline int
@@ -131,16 +131,17 @@ RW_WRITE_HELD(krwlock_t *rwp)
 static inline int
 RW_LOCK_HELD(krwlock_t *rwp)
 {
-       return spl_rwsem_is_locked(SEM(rwp));
+       return (spl_rwsem_is_locked(SEM(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
  */
-#define rw_init(rwp, name, type, arg)                                  \
+/* BEGIN CSTYLED */
+#define        rw_init(rwp, name, type, arg)                                   \
 ({                                                                     \
        static struct lock_class_key __key;                             \
        ASSERT(type == RW_DEFAULT || type == RW_NOLOCKDEP);             \
@@ -150,12 +151,12 @@ RW_LOCK_HELD(krwlock_t *rwp)
        spl_rw_set_type(rwp, type);                                     \
 })
 
-#define rw_destroy(rwp)                                                        \
+#define        rw_destroy(rwp)                                                 \
 ({                                                                     \
        VERIFY(!RW_LOCK_HELD(rwp));                                     \
 })
 
-#define rw_tryenter(rwp, rw)                                           \
+#define        rw_tryenter(rwp, rw)                                            \
 ({                                                                     \
        int _rc_ = 0;                                                   \
                                                                        \
@@ -175,7 +176,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
        _rc_;                                                           \
 })
 
-#define rw_enter(rwp, rw)                                              \
+#define        rw_enter(rwp, rw)                                               \
 ({                                                                     \
        spl_rw_lockdep_off_maybe(rwp);                                  \
        switch (rw) {                                                   \
@@ -192,7 +193,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
        spl_rw_lockdep_on_maybe(rwp);                                   \
 })
 
-#define rw_exit(rwp)                                                   \
+#define        rw_exit(rwp)                                                    \
 ({                                                                     \
        spl_rw_lockdep_off_maybe(rwp);                                  \
        if (RW_WRITE_HELD(rwp)) {                                       \
@@ -205,7 +206,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
        spl_rw_lockdep_on_maybe(rwp);                                   \
 })
 
-#define rw_downgrade(rwp)                                              \
+#define        rw_downgrade(rwp)                                               \
 ({                                                                     \
        spl_rw_lockdep_off_maybe(rwp);                                  \
        spl_rw_clear_owner(rwp);                                        \
@@ -213,7 +214,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
        spl_rw_lockdep_on_maybe(rwp);                                   \
 })
 
-#define rw_tryupgrade(rwp)                                             \
+#define        rw_tryupgrade(rwp)                                              \
 ({                                                                     \
        int _rc_ = 0;                                                   \
                                                                        \
@@ -227,6 +228,7 @@ RW_LOCK_HELD(krwlock_t *rwp)
        }                                                               \
        _rc_;                                                           \
 })
+/* END CSTYLED */
 
 int spl_rw_init(void);
 void spl_rw_fini(void);
index 287bfaa71423e3919063cb1d0d3dfda977c5c15b..8178eb8a8df3cf93c9c2e650920ba55bc08258d2 100644 (file)
@@ -23,8 +23,8 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SDT_H
-#define _SPL_SDT_H
+#define        _SPL_SDT_H
 
-#define SET_ERROR(x) (x)
+#define        SET_ERROR(x) (x)
 
 #endif /* SPL_SDT_H */
index 8ee5d0727772e3223cecc910da10ea9c3a84ee9b..a54d78b500932aaf2f70f5c2bdf4c4b6c6e96b16 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SID_H
-#define _SPL_SID_H
+#define        _SPL_SID_H
 
 typedef struct ksiddomain {
        char            *kd_name;
@@ -41,21 +41,21 @@ typedef int ksid_t;
 static inline ksiddomain_t *
 ksid_lookupdomain(const char *dom)
 {
-        ksiddomain_t *kd;
+       ksiddomain_t *kd;
        int len = strlen(dom);
 
-        kd = kmem_zalloc(sizeof(ksiddomain_t), KM_SLEEP);
-        kd->kd_name = kmem_zalloc(len + 1, KM_SLEEP);
+       kd = kmem_zalloc(sizeof (ksiddomain_t), KM_SLEEP);
+       kd->kd_name = kmem_zalloc(len + 1, KM_SLEEP);
        memcpy(kd->kd_name, dom, len);
 
-        return (kd);
+       return (kd);
 }
 
 static inline void
 ksiddomain_rele(ksiddomain_t *ksid)
 {
        kmem_free(ksid->kd_name, strlen(ksid->kd_name) + 1);
-        kmem_free(ksid, sizeof(ksiddomain_t));
+       kmem_free(ksid, sizeof (ksiddomain_t));
 }
 
 #endif /* _SPL_SID_H */
index 77cc2d3c2fb5a553ff1ad074df7b8ed1dfb10747..849c6e9868970572be4771318b2fca1127621a5e 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SIGNAL_H
-#define _SPL_SIGNAL_H
+#define        _SPL_SIGNAL_H
 
 #include <linux/sched.h>
 
@@ -34,7 +34,8 @@
 #define        FORREAL         0       /* Usual side-effects */
 #define        JUSTLOOKING     1       /* Don't stop the process */
 
-/* The "why" argument indicates the allowable side-effects of the call:
+/*
+ * The "why" argument indicates the allowable side-effects of the call:
  *
  * FORREAL:  Extract the next pending signal from p_sig into p_cursig;
  * stop the process if a stop has been requested or if a traced signal
@@ -48,7 +49,7 @@ issig(int why)
 {
        ASSERT(why == FORREAL || why == JUSTLOOKING);
 
-       return signal_pending(current);
+       return (signal_pending(current));
 }
 
 #endif /* SPL_SIGNAL_H */
index cde7556a6186579daae7b5823b7ff445111c68fb..c425b75bb2cd9e7576227ce5affb2a704437c367 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_STAT_H
-#define _SPL_STAT_H
+#define        _SPL_STAT_H
 
 #include <linux/stat.h>
 
index 25c7ee18f933fe7d3ce7fcc71890dc626efa82d1..c0c856668f20de04de3d92ff3664b05f971e9cc7 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_STROPTS_H
-#define _SPL_STROPTS_H
+#define        _SPL_STROPTS_H
 
 #endif /* SPL_STROPTS_H */
index c49b0c26cd77a4afe0d4877d356ed09e8abeb831..1f780943e5a9356192c4fa2da02a38dede77d6aa 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SUNDDI_H
-#define _SPL_SUNDDI_H
+#define        _SPL_SUNDDI_H
 
 #include <sys/cred.h>
 #include <sys/uio.h>
@@ -44,9 +44,9 @@ typedef int ddi_devid_t;
 #define        DDI_SUCCESS                             0
 #define        DDI_FAILURE                             -1
 
-#define        ddi_prop_lookup_string(x1,x2,x3,x4,x5)  (*x5 = NULL)
-#define        ddi_prop_free(x)                        (void)0
-#define        ddi_root_node()                         (void)0
+#define        ddi_prop_lookup_string(x1, x2, x3, x4, x5)      (*x5 = NULL)
+#define        ddi_prop_free(x)                                (void)0
+#define        ddi_root_node()                                 (void)0
 
 extern int ddi_strtoul(const char *, char **, int, unsigned long *);
 extern int ddi_strtol(const char *, char **, int, long *);
index ec8420231e995e89a75f69253384008bfc6c8ad2..3f7f9b3788d131d84486434afac3440b4ee92e7c 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SUNLDI_H
-#define _SPL_SUNLDI_H
+#define        _SPL_SUNLDI_H
 
 #include <sys/types.h>
 #include <linux/fs.h>
@@ -32,6 +32,6 @@
 #include <linux/bio.h>
 #include <linux/blkdev.h>
 
-#define SECTOR_SIZE 512
+#define        SECTOR_SIZE 512
 
 #endif /* SPL_SUNLDI_H */
index 14ab48aa6d0bc455e8d9027c548b129441f74240..b6c0cf0500fb5dfb3e21e013975c1682e5e28676 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SYSDC_H
-#define _SPL_SYSDC_H
+#define        _SPL_SYSDC_H
 
 #endif /* SPL_SYSDC_H */
index 6f85ee376c925752c27198a40613c29b6f9aa897..3d618e7de1a1b24cadd31758926c860e323a1d9a 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/sys/sysevent
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index a4a9f3e98b2394915957b7a59d2c341f0a81ad4b..c5c691b48b3e95849250fb789d8127a273847c4d 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SYSMACROS_H
-#define _SPL_SYSMACROS_H
+#define        _SPL_SYSMACROS_H
 
 #include <linux/module.h>
 #include <linux/sched.h>
 #endif
 
 #ifndef _KERNEL
-#define _KERNEL                                __KERNEL__
+#define        _KERNEL                         __KERNEL__
 #endif
 
-#define FALSE                          0
-#define TRUE                           1
-
-#define INT8_MAX                       (127)
-#define INT8_MIN                       (-128)
-#define UINT8_MAX                      (255)
-#define UINT8_MIN                      (0)
-
-#define INT16_MAX                      (32767)
-#define INT16_MIN                      (-32768)
-#define UINT16_MAX                     (65535)
-#define UINT16_MIN                     (0)
-
-#define INT32_MAX                      INT_MAX
-#define INT32_MIN                      INT_MIN
-#define UINT32_MAX                     UINT_MAX
-#define UINT32_MIN                     UINT_MIN
-
-#define INT64_MAX                      LLONG_MAX
-#define INT64_MIN                      LLONG_MIN
-#define UINT64_MAX                     ULLONG_MAX
-#define UINT64_MIN                     ULLONG_MIN
-
-#define NBBY                           8
-#define ENOTSUP                                EOPNOTSUPP
-
-#define MAXMSGLEN                      256
-#define MAXNAMELEN                     256
-#define MAXPATHLEN                     PATH_MAX
-#define MAXOFFSET_T                    LLONG_MAX
-#define MAXBSIZE                       8192
-#define DEV_BSIZE                      512
-#define DEV_BSHIFT                     9 /* log2(DEV_BSIZE) */
-
-#define proc_pageout                   NULL
-#define curproc                                current
-#define max_ncpus                      num_possible_cpus()
-#define boot_ncpus                     num_online_cpus()
-#define CPU_SEQID                      smp_processor_id()
-#define _NOTE(x)
-#define is_system_labeled()            0
+#define        FALSE                           0
+#define        TRUE                            1
+
+#define        INT8_MAX                        (127)
+#define        INT8_MIN                        (-128)
+#define        UINT8_MAX                       (255)
+#define        UINT8_MIN                       (0)
+
+#define        INT16_MAX                       (32767)
+#define        INT16_MIN                       (-32768)
+#define        UINT16_MAX                      (65535)
+#define        UINT16_MIN                      (0)
+
+#define        INT32_MAX                       INT_MAX
+#define        INT32_MIN                       INT_MIN
+#define        UINT32_MAX                      UINT_MAX
+#define        UINT32_MIN                      UINT_MIN
+
+#define        INT64_MAX                       LLONG_MAX
+#define        INT64_MIN                       LLONG_MIN
+#define        UINT64_MAX                      ULLONG_MAX
+#define        UINT64_MIN                      ULLONG_MIN
+
+#define        NBBY                            8
+#define        ENOTSUP                         EOPNOTSUPP
+
+#define        MAXMSGLEN                       256
+#define        MAXNAMELEN                      256
+#define        MAXPATHLEN                      PATH_MAX
+#define        MAXOFFSET_T                     LLONG_MAX
+#define        MAXBSIZE                        8192
+#define        DEV_BSIZE                       512
+#define        DEV_BSHIFT                      9 /* log2(DEV_BSIZE) */
+
+#define        proc_pageout                    NULL
+#define        curproc                         current
+#define        max_ncpus                       num_possible_cpus()
+#define        boot_ncpus                      num_online_cpus()
+#define        CPU_SEQID                       smp_processor_id()
+#define        _NOTE(x)
+#define        is_system_labeled()             0
 
 #ifndef RLIM64_INFINITY
-#define RLIM64_INFINITY                        (~0ULL)
+#define        RLIM64_INFINITY                 (~0ULL)
 #endif
 
-/* 0..MAX_PRIO-1:              Process priority
+/*
+ * 0..MAX_PRIO-1:              Process priority
  * 0..MAX_RT_PRIO-1:           RT priority tasks
  * MAX_RT_PRIO..MAX_PRIO-1:    SCHED_NORMAL tasks
  *
  * Treat shim tasks as SCHED_NORMAL tasks
  */
-#define minclsyspri                    (MAX_PRIO-1)
-#define maxclsyspri                    (MAX_RT_PRIO)
-#define defclsyspri                    (DEFAULT_PRIO)
+#define        minclsyspri                     (MAX_PRIO-1)
+#define        maxclsyspri                     (MAX_RT_PRIO)
+#define        defclsyspri                     (DEFAULT_PRIO)
 
 #ifndef NICE_TO_PRIO
-#define NICE_TO_PRIO(nice)             (MAX_RT_PRIO + (nice) + 20)
+#define        NICE_TO_PRIO(nice)              (MAX_RT_PRIO + (nice) + 20)
 #endif
 #ifndef PRIO_TO_NICE
-#define PRIO_TO_NICE(prio)             ((prio) - MAX_RT_PRIO - 20)
+#define        PRIO_TO_NICE(prio)              ((prio) - MAX_RT_PRIO - 20)
 #endif
 
 /*
  * Missing macros
  */
 #ifndef PAGESIZE
-#define PAGESIZE                       PAGE_SIZE
+#define        PAGESIZE                        PAGE_SIZE
 #endif
 
 #ifndef PAGESHIFT
-#define PAGESHIFT                      PAGE_SHIFT
+#define        PAGESHIFT                       PAGE_SHIFT
 #endif
 
 /* from Solaris sys/byteorder.h */
-#define BSWAP_8(x)     ((x) & 0xff)
-#define BSWAP_16(x)    ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8))
-#define BSWAP_32(x)    ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16))
-#define BSWAP_64(x)    ((BSWAP_32(x) << 32) | BSWAP_32((x) >> 32))
+#define        BSWAP_8(x)      ((x) & 0xff)
+#define        BSWAP_16(x)     ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8))
+#define        BSWAP_32(x)     ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16))
+#define        BSWAP_64(x)     ((BSWAP_32(x) << 32) | BSWAP_32((x) >> 32))
 
-/* Map some simple functions.
+/*
+ * Map some simple functions.
  */
-#define bzero(ptr,size)                        memset(ptr,0,size)
-#define bcopy(src,dest,size)           memmove(dest,src,size)
-#define bcmp(src,dest,size)            memcmp((src), (dest), (size_t)(size))
+#define        bzero(ptr, size)                memset(ptr, 0, size)
+#define        bcopy(src, dest, size)          memmove(dest, src, size)
+#define        bcmp(src, dest, size)           memcmp((src), (dest), (size_t)(size))
 
 /* Dtrace probes do not exist in the linux kernel */
 #ifdef DTRACE_PROBE
 #undef  DTRACE_PROBE
 #endif  /* DTRACE_PROBE */
-#define DTRACE_PROBE(a)                                        ((void)0)
+#define        DTRACE_PROBE(a)                                 ((void)0)
 
 #ifdef DTRACE_PROBE1
 #undef  DTRACE_PROBE1
 #endif  /* DTRACE_PROBE1 */
-#define DTRACE_PROBE1(a, b, c)                         ((void)0)
+#define        DTRACE_PROBE1(a, b, c)                          ((void)0)
 
 #ifdef DTRACE_PROBE2
 #undef  DTRACE_PROBE2
 #endif  /* DTRACE_PROBE2 */
-#define DTRACE_PROBE2(a, b, c, d, e)                   ((void)0)
+#define        DTRACE_PROBE2(a, b, c, d, e)                    ((void)0)
 
 #ifdef DTRACE_PROBE3
 #undef  DTRACE_PROBE3
 #endif  /* DTRACE_PROBE3 */
-#define DTRACE_PROBE3(a, b, c, d, e, f, g)             ((void)0)
+#define        DTRACE_PROBE3(a, b, c, d, e, f, g)              ((void)0)
 
 #ifdef DTRACE_PROBE4
 #undef  DTRACE_PROBE4
 #endif  /* DTRACE_PROBE4 */
-#define DTRACE_PROBE4(a, b, c, d, e, f, g, h, i)       ((void)0)
+#define        DTRACE_PROBE4(a, b, c, d, e, f, g, h, i)        ((void)0)
 
 /* Missing globals */
 extern char spl_version[32];
@@ -167,39 +169,39 @@ extern void spl_cleanup(void);
 #define        lowbit(x)               __ffs(x)
 
 #define        highbit64(x)            fls64(x)
-#define        makedevice(maj,min)     makedev(maj,min)
+#define        makedevice(maj, min)    makedev(maj, min)
 
 /* common macros */
 #ifndef MIN
-#define MIN(a, b)              ((a) < (b) ? (a) : (b))
+#define        MIN(a, b)               ((a) < (b) ? (a) : (b))
 #endif
 #ifndef MAX
-#define MAX(a, b)              ((a) < (b) ? (b) : (a))
+#define        MAX(a, b)               ((a) < (b) ? (b) : (a))
 #endif
 #ifndef ABS
-#define ABS(a)                 ((a) < 0 ? -(a) : (a))
+#define        ABS(a)                  ((a) < 0 ? -(a) : (a))
 #endif
 #ifndef DIV_ROUND_UP
-#define DIV_ROUND_UP(n,d)      (((n) + (d) - 1) / (d))
+#define        DIV_ROUND_UP(n, d)      (((n) + (d) - 1) / (d))
 #endif
 #ifndef roundup
-#define roundup(x, y)          ((((x) + ((y) - 1)) / (y)) * (y))
+#define        roundup(x, y)           ((((x) + ((y) - 1)) / (y)) * (y))
 #endif
 #ifndef howmany
-#define howmany(x, y)          (((x) + ((y) - 1)) / (y))
+#define        howmany(x, y)           (((x) + ((y) - 1)) / (y))
 #endif
 
 /*
  * Compatibility macros/typedefs needed for Solaris -> Linux port
  */
-#define P2ALIGN(x, align)      ((x) & -(align))
-#define P2CROSS(x, y, align)   (((x) ^ (y)) > (align) - 1)
-#define P2ROUNDUP(x, align)    ((((x) - 1) | ((align) - 1)) + 1)
-#define P2PHASE(x, align)      ((x) & ((align) - 1))
-#define P2NPHASE(x, align)     (-(x) & ((align) - 1))
-#define ISP2(x)                        (((x) & ((x) - 1)) == 0)
-#define IS_P2ALIGNED(v, a)     ((((uintptr_t)(v)) & ((uintptr_t)(a) - 1))==0)
-#define P2BOUNDARY(off, len, align) \
+#define        P2ALIGN(x, align)       ((x) & -(align))
+#define        P2CROSS(x, y, align)    (((x) ^ (y)) > (align) - 1)
+#define        P2ROUNDUP(x, align)     ((((x) - 1) | ((align) - 1)) + 1)
+#define        P2PHASE(x, align)       ((x) & ((align) - 1))
+#define        P2NPHASE(x, align)      (-(x) & ((align) - 1))
+#define        ISP2(x)                 (((x) & ((x) - 1)) == 0)
+#define        IS_P2ALIGNED(v, a)      ((((uintptr_t)(v)) & ((uintptr_t)(a) - 1)) == 0)
+#define        P2BOUNDARY(off, len, align) \
                                (((off) ^ ((off) + (len) - 1)) > (align) - 1)
 
 /*
@@ -214,28 +216,28 @@ extern void spl_cleanup(void);
  * or
  * P2ROUNDUP_TYPED(x, PAGESIZE, uint64_t)
  */
-#define P2ALIGN_TYPED(x, align, type)   \
-        ((type)(x) & -(type)(align))
-#define P2PHASE_TYPED(x, align, type)   \
-        ((type)(x) & ((type)(align) - 1))
-#define P2NPHASE_TYPED(x, align, type)  \
-        (-(type)(x) & ((type)(align) - 1))
-#define P2ROUNDUP_TYPED(x, align, type) \
-        ((((type)(x) - 1) | ((type)(align) - 1)) + 1)
-#define P2END_TYPED(x, align, type)     \
-        (-(~(type)(x) & -(type)(align)))
-#define P2PHASEUP_TYPED(x, align, phase, type)  \
-        ((type)(phase) - (((type)(phase) - (type)(x)) & -(type)(align)))
-#define P2CROSS_TYPED(x, y, align, type)        \
-        (((type)(x) ^ (type)(y)) > (type)(align) - 1)
-#define P2SAMEHIGHBIT_TYPED(x, y, type) \
-        (((type)(x) ^ (type)(y)) < ((type)(x) & (type)(y)))
+#define        P2ALIGN_TYPED(x, align, type)   \
+       ((type)(x) & -(type)(align))
+#define        P2PHASE_TYPED(x, align, type)   \
+       ((type)(x) & ((type)(align) - 1))
+#define        P2NPHASE_TYPED(x, align, type)  \
+       (-(type)(x) & ((type)(align) - 1))
+#define        P2ROUNDUP_TYPED(x, align, type) \
+       ((((type)(x) - 1) | ((type)(align) - 1)) + 1)
+#define        P2END_TYPED(x, align, type)     \
+       (-(~(type)(x) & -(type)(align)))
+#define        P2PHASEUP_TYPED(x, align, phase, type)  \
+       ((type)(phase) - (((type)(phase) - (type)(x)) & -(type)(align)))
+#define        P2CROSS_TYPED(x, y, align, type)        \
+       (((type)(x) ^ (type)(y)) > (type)(align) - 1)
+#define        P2SAMEHIGHBIT_TYPED(x, y, type) \
+       (((type)(x) ^ (type)(y)) < ((type)(x) & (type)(y)))
 
 #if defined(_KERNEL) && !defined(_KMEMUSER) && !defined(offsetof)
 
 /* avoid any possibility of clashing with <stddef.h> version */
 
-#define offsetof(s, m)  ((size_t)(&(((s *)0)->m)))
+#define        offsetof(s, m)  ((size_t)(&(((s *)0)->m)))
 #endif
 
 #endif  /* _SPL_SYSMACROS_H */
index 5c0cc4663d8d39baea2e27a79b792a5b5cab03aa..e80b9d49448e481e7c953184041d3f6c6a4c075f 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_SYSTEMINFO_H
-#define _SPL_SYSTEMINFO_H
+#define        _SPL_SYSTEMINFO_H
 
-#define HW_HOSTID_LEN          11              /* minimum buffer size needed */
+#define        HW_HOSTID_LEN           11              /* minimum buffer size needed */
                                                /* to hold a decimal or hex */
                                                /* hostid string */
 
 /* Supplemental definitions for Linux. */
-#define HW_HOSTID_PATH         "/etc/hostid"   /* binary configuration file */
-#define HW_HOSTID_MASK         0xFFFFFFFF      /* significant hostid bits */
+#define        HW_HOSTID_PATH          "/etc/hostid"   /* binary configuration file */
+#define        HW_HOSTID_MASK          0xFFFFFFFF      /* significant hostid bits */
 
 #endif /* SPL_SYSTEMINFO_H */
index 3336fb3578c6fad1870ef2434c920e04986de919..358cc6f887ed3781f64d599843a98ff9d2c393c7 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SYSTM_H
-#define _SPL_SYSTM_H
+#define        _SPL_SYSTM_H
 
 #include <sys/sunddi.h>
 
index 6c159f933d5d779539d93775d6b0ce90040af87d..6cb85137186a076f31ae3207c77e323afd13d1d4 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_T_LOCK_H
-#define _SPL_T_LOCK_H
+#define        _SPL_T_LOCK_H
 
 #include <sys/param.h>
 #include <sys/mutex.h>
index c5ccec715be62380c9b33e7a6ce18273611f3186..4d90a35639db7dfa081f9909419d019f8e8ad685 100644 (file)
@@ -94,7 +94,7 @@ typedef struct taskq {
        taskqid_t               tq_lowest_id;   /* lowest pend/work id */
        struct list_head        tq_free_list;   /* free taskq_ent_t's */
        struct list_head        tq_pend_list;   /* pending taskq_ent_t's */
-       struct list_head        tq_prio_list;   /* priority pending taskq_ent_t's */
+       struct list_head        tq_prio_list;   /* priority taskq_ent_t's */
        struct list_head        tq_delay_list;  /* delayed taskq_ent_t's */
        struct list_head        tq_taskqs;      /* all taskq_t's */
        spl_wait_queue_head_t   tq_work_waitq;  /* new work waitq */
index 433a0761d165028cfb8762403cae57f9bf7eab85..5894db7a6b5c6740509258d228fbed4a76258497 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_THREAD_H
-#define _SPL_THREAD_H
+#define        _SPL_THREAD_H
 
 #include <linux/module.h>
 #include <linux/mm.h>
 /*
  * Thread interfaces
  */
-#define TP_MAGIC                       0x53535353
+#define        TP_MAGIC                        0x53535353
 
-#define TS_SLEEP                       TASK_INTERRUPTIBLE
-#define TS_RUN                         TASK_RUNNING
-#define TS_ZOMB                                EXIT_ZOMBIE
-#define TS_STOPPED                     TASK_STOPPED
+#define        TS_SLEEP                        TASK_INTERRUPTIBLE
+#define        TS_RUN                          TASK_RUNNING
+#define        TS_ZOMB                         EXIT_ZOMBIE
+#define        TS_STOPPED                      TASK_STOPPED
 
 typedef void (*thread_func_t)(void *);
 
-#define thread_create(stk, stksize, func, arg, len, pp, state, pri)      \
-       __thread_create(stk, stksize, (thread_func_t)func,               \
-                       #func, arg, len, pp, state, pri)
-#define thread_exit()                  __thread_exit()
-#define thread_join(t)                 VERIFY(0)
-#define curthread                      current
-#define getcomm()                      current->comm
-#define getpid()                       current->pid
+/* BEGIN CSTYLED */
+#define        thread_create(stk, stksize, func, arg, len, pp, state, pri)     \
+       __thread_create(stk, stksize, (thread_func_t)func,              \
+       #func, arg, len, pp, state, pri)
+/* END CSTYLED */
+
+#define        thread_exit()                   __thread_exit()
+#define        thread_join(t)                  VERIFY(0)
+#define        curthread                       current
+#define        getcomm()                       current->comm
+#define        getpid()                        current->pid
 
 extern kthread_t *__thread_create(caddr_t stk, size_t  stksize,
-                                  thread_func_t func, const char *name,
-                                  void *args, size_t len, proc_t *pp,
-                                  int state, pri_t pri);
+    thread_func_t func, const char *name, void *args, size_t len, proc_t *pp,
+    int state, pri_t pri);
 extern void __thread_exit(void);
 extern struct task_struct *spl_kthread_create(int (*func)(void *),
                        void *data, const char namefmt[], ...);
index 33d577e719aa63643dc5abc655d3d3e85fcb0bdd..0d1f362559b332c68f08d0cf8334a690d0abbcab 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_TIMER_H
-#define _SPL_TIMER_H
+#define        _SPL_TIMER_H
 
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/timer.h>
 
-#define lbolt                          ((clock_t)jiffies)
-#define lbolt64                                ((int64_t)get_jiffies_64())
+#define        lbolt                           ((clock_t)jiffies)
+#define        lbolt64                         ((int64_t)get_jiffies_64())
 
-#define ddi_get_lbolt()                        ((clock_t)jiffies)
-#define ddi_get_lbolt64()              ((int64_t)get_jiffies_64())
+#define        ddi_get_lbolt()                 ((clock_t)jiffies)
+#define        ddi_get_lbolt64()               ((int64_t)get_jiffies_64())
 
-#define ddi_time_before(a, b)          (typecheck(clock_t, a) && \
+#define        ddi_time_before(a, b)           (typecheck(clock_t, a) && \
                                        typecheck(clock_t, b) && \
                                        ((a) - (b) < 0))
-#define ddi_time_after(a, b)           ddi_time_before(b, a)
-#define ddi_time_before_eq(a, b)       (!ddi_time_after(a, b))
-#define ddi_time_after_eq(a, b)                ddi_time_before_eq(b, a)
+#define        ddi_time_after(a, b)            ddi_time_before(b, a)
+#define        ddi_time_before_eq(a, b)        (!ddi_time_after(a, b))
+#define        ddi_time_after_eq(a, b)         ddi_time_before_eq(b, a)
 
-#define ddi_time_before64(a, b)                (typecheck(int64_t, a) && \
+#define        ddi_time_before64(a, b)         (typecheck(int64_t, a) && \
                                        typecheck(int64_t, b) && \
                                        ((a) - (b) < 0))
-#define ddi_time_after64(a, b)         ddi_time_before64(b, a)
-#define ddi_time_before_eq64(a, b)     (!ddi_time_after64(a, b))
-#define ddi_time_after_eq64(a, b)      ddi_time_before_eq64(b, a)
+#define        ddi_time_after64(a, b)          ddi_time_before64(b, a)
+#define        ddi_time_before_eq64(a, b)      (!ddi_time_after64(a, b))
+#define        ddi_time_after_eq64(a, b)       ddi_time_before_eq64(b, a)
 
-#define delay(ticks)                   schedule_timeout_uninterruptible(ticks)
+#define        delay(ticks)                    schedule_timeout_uninterruptible(ticks)
 
-#define SEC_TO_TICK(sec)               ((sec) * HZ)
-#define MSEC_TO_TICK(ms)               msecs_to_jiffies(ms)
-#define USEC_TO_TICK(us)               usecs_to_jiffies(us)
-#define NSEC_TO_TICK(ns)               usecs_to_jiffies(ns / NSEC_PER_USEC)
+#define        SEC_TO_TICK(sec)                ((sec) * HZ)
+#define        MSEC_TO_TICK(ms)                msecs_to_jiffies(ms)
+#define        USEC_TO_TICK(us)                usecs_to_jiffies(us)
+#define        NSEC_TO_TICK(ns)                usecs_to_jiffies(ns / NSEC_PER_USEC)
 
 #endif  /* _SPL_TIMER_H */
-
index 1894a823231697760a4e9c6d90ce7c52a9395292..48eaa802c3c8a14eab5cd5a0df3c6ba9826a5580 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_TSD_H
-#define _SPL_TSD_H
+#define        _SPL_TSD_H
 
 #include <sys/types.h>
 
-#define TSD_HASH_TABLE_BITS_DEFAULT    9
-#define TSD_KEYS_MAX                   32768
-#define DTOR_PID                       (PID_MAX_LIMIT+1)
-#define PID_KEY                                (TSD_KEYS_MAX+1)
+#define        TSD_HASH_TABLE_BITS_DEFAULT     9
+#define        TSD_KEYS_MAX                    32768
+#define        DTOR_PID                        (PID_MAX_LIMIT+1)
+#define        PID_KEY                         (TSD_KEYS_MAX+1)
 
 typedef void (*dtor_func_t)(void *);
 
index d718ca0fad45ea45f4a7eb2849162f8f33e45099..2fe63b73b3621254d6026be27d5c715dae67faca 100644 (file)
 #include <sys/sysmacros.h>
 
 #ifndef ULLONG_MAX
-#define ULLONG_MAX                     (~0ULL)
+#define        ULLONG_MAX                      (~0ULL)
 #endif
 
 #ifndef LLONG_MAX
-#define LLONG_MAX                      ((long long)(~0ULL>>1))
+#define        LLONG_MAX                       ((long long)(~0ULL>>1))
 #endif
 
-typedef enum { B_FALSE=0, B_TRUE=1 }   boolean_t;
+typedef enum { B_FALSE = 0, B_TRUE = 1 }       boolean_t;
 typedef unsigned long                  intptr_t;
 typedef unsigned long                  ulong_t;
 typedef unsigned int                   uint_t;
index 0a21c708c5890a21f4787de3528be824519421b7..e10cb19095b7632ff0972f196438b7af47c4588d 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_U8_TEXTPREP_H
-#define _SPL_U8_TEXTPREP_H
+#define        _SPL_U8_TEXTPREP_H
 
 #endif /* SPL_U8_TEXTPREP_H */
index 404c03774aea46698653dc2b5d1783b91a67238d..764beb9ff45d5614dc5ac292c8ffc73f7b449d9a 100644 (file)
@@ -24,7 +24,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_UIO_H
-#define _SPL_UIO_H
+#define        _SPL_UIO_H
 
 #include <linux/uio.h>
 #include <linux/blkdev.h>
 typedef struct iovec iovec_t;
 
 typedef enum uio_rw {
-       UIO_READ =      0,
-       UIO_WRITE =     1,
+       UIO_READ =              0,
+       UIO_WRITE =             1,
 } uio_rw_t;
 
 typedef enum uio_seg {
-       UIO_USERSPACE = 0,
-       UIO_SYSSPACE =  1,
-       UIO_USERISPACE= 2,
-       UIO_BVEC =      3,
+       UIO_USERSPACE =         0,
+       UIO_SYSSPACE =          1,
+       UIO_USERISPACE =        2,
+       UIO_BVEC =              3,
 } uio_seg_t;
 
 typedef struct uio {
@@ -71,7 +71,7 @@ typedef enum xuio_type {
 } xuio_type_t;
 
 
-#define UIOA_IOV_MAX    16
+#define        UIOA_IOV_MAX    16
 
 typedef struct uioa_page_s {
        int     uioa_pfncnt;
@@ -100,7 +100,7 @@ typedef struct xuio {
        } xu_ext;
 } xuio_t;
 
-#define XUIO_XUZC_PRIV(xuio)   xuio->xu_ext.xu_zc.xu_zc_priv
-#define XUIO_XUZC_RW(xuio)     xuio->xu_ext.xu_zc.xu_zc_rw
+#define        XUIO_XUZC_PRIV(xuio)    xuio->xu_ext.xu_zc.xu_zc_priv
+#define        XUIO_XUZC_RW(xuio)      xuio->xu_ext.xu_zc.xu_zc_rw
 
 #endif /* SPL_UIO_H */
index e1d93c61ea18f67d87067711695f24c599c354e7..9391d1a910bdd7415add2cec469c714849762aef 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_UNISTD_H
-#define _SPL_UNISTD_H
+#define        _SPL_UNISTD_H
 
 #endif /* SPL_UNISTD_H */
index 2b25dd33c01aa5bef72749be108a0225bd8061e1..332140796aaa7aabf4a5917d8ebe4fbb6876be50 100644 (file)
@@ -21,7 +21,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_USER_H
-#define _SPL_USER_H
+#define        _SPL_USER_H
 
 /*
  * We have uf_info_t for areleasef(). We implement areleasef() using a global
@@ -37,6 +37,6 @@
 struct uf_info;
 typedef struct uf_info uf_info_t;
 
-#define P_FINFO(x) ((uf_info_t *)x)
+#define        P_FINFO(x) ((uf_info_t *)x)
 
 #endif /* SPL_USER_H */
index 9fa173b5813c4b6dfaa5823db76fbfbf123c2e7e..388b4c929dfa1d6bc9742d0df37b9b63fd487a3c 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VA_LIST_H
-#define _SPL_VA_LIST_H
+#define        _SPL_VA_LIST_H
 
 #endif /* SPL_VA_LIST_H */
index bf360ff4d1bf6a8765b5b335b3285de28c77d526..82185bcaeb12cbef545d7e5e31a376a016f027c2 100644 (file)
@@ -23,8 +23,8 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VARARGS_H
-#define _SPL_VARARGS_H
+#define        _SPL_VARARGS_H
 
-#define __va_list                       va_list
+#define        __va_list       va_list
 
 #endif /* SPL_VARARGS_H */
index f01dc11cb09f3940e9937b8a8ae4155ac4eb986b..d6fc1c35e9d8279ac8a87f9fbe6ec12acc9e6707 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ZFS_H
-#define _SPL_ZFS_H
+#define        _SPL_ZFS_H
 
 #include <linux/mount.h>
 #include <linux/fs.h>
@@ -40,7 +40,7 @@ typedef struct spl_fid {
                long fid_pad;
                struct {
                        ushort_t len;           /* length of data in bytes */
-                       char     data[MAXFIDSZ];/* data (variable len) */
+                       char data[MAXFIDSZ];    /* data (variable len) */
                } _fid;
        } un;
 } fid_t;
index d3540c5934ebb82dac4cfe0fc3968f66fbc522a8..5909504ad65faa446da976aed9f511acb7561e15 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_OPREG_H
-#define _SPL_OPREG_H
+#define        _SPL_OPREG_H
 
 #endif /* SPL_OPREG_H */
index 9d334fe0a16e7bcf04bbdb61be80eaedf596f651..059512b94fdcebd9c4cc2f93844e161599d4a450 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VMSYSTM_H
-#define _SPL_VMSYSTM_H
+#define        _SPL_VMSYSTM_H
 
 #include <linux/mmzone.h>
 #include <linux/mm.h>
@@ -48,9 +48,9 @@ copyin(const void *from, void *to, size_t len)
 {
        /* On error copyin routine returns -1 */
        if (xcopyin(from, to, len))
-               return -1;
+               return (-1);
 
-       return 0;
+       return (0);
 }
 
 static __inline__ int
@@ -58,9 +58,9 @@ copyout(const void *from, void *to, size_t len)
 {
        /* On error copyout routine returns -1 */
        if (xcopyout(from, to, len))
-               return -1;
+               return (-1);
 
-       return 0;
+       return (0);
 }
 
 static __inline__ int
@@ -69,7 +69,7 @@ copyinstr(const void *from, void *to, size_t len, size_t *done)
        size_t rc;
 
        if (len == 0)
-               return -ENAMETOOLONG;
+               return (-ENAMETOOLONG);
 
        /* XXX: Should return ENAMETOOLONG if 'strlen(from) > len' */
 
@@ -78,7 +78,7 @@ copyinstr(const void *from, void *to, size_t len, size_t *done)
        if (done != NULL)
                *done = rc;
 
-       return 0;
+       return (0);
 }
 
 #endif /* SPL_VMSYSTM_H */
index 0b857d384ba572a540263e59b830c4d8d96fa754..0ed479486f9fc699b6dc877f9b70f3753c79207c 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VNODE_H
-#define _SPL_VNODE_H
+#define        _SPL_VNODE_H
 
 #include <linux/module.h>
 #include <linux/syscalls.h>
  * was properly split in to O_SYNC and O_DSYNC respectively.
  */
 #ifndef O_DSYNC
-#define O_DSYNC                O_SYNC
+#define        O_DSYNC         O_SYNC
 #endif
 
-#define FREAD          1
-#define FWRITE         2
-#define FCREAT         O_CREAT
-#define FTRUNC         O_TRUNC
-#define FOFFMAX                O_LARGEFILE
-#define FSYNC          O_SYNC
-#define FDSYNC         O_DSYNC
-#define FRSYNC         O_SYNC
-#define FEXCL          O_EXCL
-#define FDIRECT                O_DIRECT
-#define FAPPEND                O_APPEND
+#define        FREAD           1
+#define        FWRITE          2
+#define        FCREAT          O_CREAT
+#define        FTRUNC          O_TRUNC
+#define        FOFFMAX         O_LARGEFILE
+#define        FSYNC           O_SYNC
+#define        FDSYNC          O_DSYNC
+#define        FRSYNC          O_SYNC
+#define        FEXCL           O_EXCL
+#define        FDIRECT         O_DIRECT
+#define        FAPPEND         O_APPEND
 
-#define FNODSYNC       0x10000 /* fsync pseudo flag */
-#define FNOFOLLOW      0x20000 /* don't follow symlinks */
+#define        FNODSYNC        0x10000 /* fsync pseudo flag */
+#define        FNOFOLLOW       0x20000 /* don't follow symlinks */
 
-#define F_FREESP       11      /* Free file space */
+#define        F_FREESP        11      /* Free file space */
 
 
 /*
 #undef AT_UID
 #undef AT_GID
 
-#define AT_MODE                ATTR_MODE
-#define AT_UID         ATTR_UID
-#define AT_GID         ATTR_GID
-#define AT_SIZE                ATTR_SIZE
-#define AT_ATIME       ATTR_ATIME
-#define AT_MTIME       ATTR_MTIME
-#define AT_CTIME       ATTR_CTIME
+#define        AT_MODE         ATTR_MODE
+#define        AT_UID          ATTR_UID
+#define        AT_GID          ATTR_GID
+#define        AT_SIZE         ATTR_SIZE
+#define        AT_ATIME        ATTR_ATIME
+#define        AT_MTIME        ATTR_MTIME
+#define        AT_CTIME        ATTR_CTIME
 
-#define ATTR_XVATTR    (1 << 31)
-#define AT_XVATTR      ATTR_XVATTR
+#define        ATTR_XVATTR     (1 << 31)
+#define        AT_XVATTR       ATTR_XVATTR
 
-#define ATTR_IATTR_MASK        (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE | \
+#define        ATTR_IATTR_MASK (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE | \
                        ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_FILE)
 
-#define CRCREAT                0x01
-#define RMFILE         0x02
+#define        CRCREAT         0x01
+#define        RMFILE          0x02
 
-#define B_INVAL                0x01
-#define B_TRUNC                0x02
+#define        B_INVAL         0x01
+#define        B_TRUNC         0x02
 
-#define LOOKUP_DIR             0x01
-#define LOOKUP_XATTR           0x02
-#define CREATE_XATTR_DIR       0x04
-#define ATTR_NOACLCHECK                0x20
+#define        LOOKUP_DIR              0x01
+#define        LOOKUP_XATTR            0x02
+#define        CREATE_XATTR_DIR        0x04
+#define        ATTR_NOACLCHECK         0x20
 
 typedef enum vtype {
        VNON            = 0,
@@ -121,8 +121,8 @@ typedef enum vtype {
 
 typedef struct vattr {
        enum vtype      va_type;        /* vnode type */
-       u_int           va_mask;        /* attribute bit-mask */
-       u_short         va_mode;        /* acc mode */
+       uint_t          va_mask;        /* attribute bit-mask */
+       ushort_t        va_mode;        /* acc mode */
        uid_t           va_uid;         /* owner uid */
        gid_t           va_gid;         /* owner gid */
        long            va_fsid;        /* fs id */
@@ -168,17 +168,15 @@ void vn_free(vnode_t *vp);
 extern vtype_t vn_mode_to_vtype(mode_t);
 extern mode_t vn_vtype_to_mode(vtype_t);
 extern int vn_open(const char *path, uio_seg_t seg, int flags, int mode,
-                  vnode_t **vpp, int x1, void *x2);
+    vnode_t **vpp, int x1, void *x2);
 extern int vn_openat(const char *path, uio_seg_t seg, int flags, int mode,
-                    vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd);
+    vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd);
 extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
-                  offset_t off, uio_seg_t seg, int x1, rlim64_t x2,
-                  void *x3, ssize_t *residp);
+    offset_t off, uio_seg_t seg, int x1, rlim64_t x2,
+    void *x3, ssize_t *residp);
 extern int vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4);
 extern int vn_seek(vnode_t *vp, offset_t o, offset_t *op, void *ct);
 
-extern int vn_remove(const char *path, uio_seg_t seg, int flags);
-extern int vn_rename(const char *path1, const char *path2, int x1);
 extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4);
 extern int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4);
 extern int vn_space(vnode_t *vp, int cmd, struct flock *bfp, int flag,
@@ -191,16 +189,16 @@ extern int vn_set_pwd(const char *filename);
 int spl_vn_init(void);
 void spl_vn_fini(void);
 
-#define VOP_CLOSE                              vn_close
-#define VOP_SEEK                               vn_seek
-#define VOP_GETATTR                            vn_getattr
-#define VOP_FSYNC                              vn_fsync
-#define VOP_SPACE                              vn_space
-#define VOP_PUTPAGE(vp, o, s, f, x1, x2)       ((void)0)
-#define vn_is_readonly(vp)                     0
-#define getf                                   vn_getf
-#define releasef                               vn_releasef
-#define areleasef                              vn_areleasef
+#define        VOP_CLOSE                               vn_close
+#define        VOP_SEEK                                vn_seek
+#define        VOP_GETATTR                             vn_getattr
+#define        VOP_FSYNC                               vn_fsync
+#define        VOP_SPACE                               vn_space
+#define        VOP_PUTPAGE(vp, o, s, f, x1, x2)        ((void)0)
+#define        vn_is_readonly(vp)                      0
+#define        getf                                    vn_getf
+#define        releasef                                vn_releasef
+#define        areleasef                               vn_areleasef
 
 extern vnode_t *rootdir;
 
index 15b0bc8e7ca0a335ad15b428976bbb08cf8ed5cc..c1d25245678e96c04d5df429075cf4d44671100c 100644 (file)
@@ -20,7 +20,8 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
+ *
  *  z_compress_level/z_uncompress are nearly identical copies of the
  *  compress2/uncompress functions provided by the official zlib package
  *  available at http://zlib.net/.  The only changes made we to slightly
@@ -53,7 +54,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ZMOD_H
-#define _SPL_ZMOD_H
+#define        _SPL_ZMOD_H
 
 #include <sys/types.h>
 #include <linux/zlib.h>
index 5a3c0869f56b7f6fd81b9d47d374cc1bb4bb2726..47e83baa501a897b3039d4a2a02d010ac4e4514d 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_ZONE_H
-#define _SPL_ZONE_H
+#define        _SPL_ZONE_H
 
 #include <sys/byteorder.h>
 
index e1d93c61ea18f67d87067711695f24c599c354e7..9391d1a910bdd7415add2cec469c714849762aef 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_UNISTD_H
-#define _SPL_UNISTD_H
+#define        _SPL_UNISTD_H
 
 #endif /* SPL_UNISTD_H */
index 96306f6a9dc886a8d961faf1ee4122795e3858e2..b62b1a81d23c7e9d84e07356f3088f1d77ee1e95 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/util
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index e55c4f8cc1cd4d7dc394151a9eb76f8192f050b5..de0d35030784fdaa56bf6500bcf779b895fc4352 100644 (file)
 \*****************************************************************************/
 
 #ifndef _SPL_QSORT_H
-#define _SPL_QSORT_H
+#define        _SPL_QSORT_H
 
 #include <linux/sort.h>
 
-#define qsort(base, num, size, cmp)    sort(base, num, size, cmp, NULL)
+#define        qsort(base, num, size, cmp)     sort(base, num, size, cmp, NULL)
 
 #endif /* SPL_QSORT_H */
index 23f0b5db0245f1149e1283328be8b01f570496f9..10e669d53470107d9d73fd1a308e81db0e112f63 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_UTIL_SSCANF_H
-#define _SPL_UTIL_SSCANF_H
+#define        _SPL_UTIL_SSCANF_H
 
 #endif /* SPL_UTIL_SSCAN_H */
index 8989edacd0fe4d64a2d586b5e410b4a3c97632aa..65084d6fd41ac0f320fcc09c3aa0d955e77d06d2 100644 (file)
@@ -39,7 +39,28 @@ subdir = include/vm
 DIST_COMMON = $(am__kernel_HEADERS_DIST) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 9c9c239591e904a413a8b7ed981b7af7fd43df60..049a326ef24c6fc52660399dd9dc0c64a16f5727 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VM_ANON_H
-#define _SPL_VM_ANON_H
+#define        _SPL_VM_ANON_H
 
 #endif /* SPL_VM_ANON_H */
index f3b308137e84cbb8cc5dfad2959266ee1f446ab3..e56caf4215394adb3e25175bff3aa6d056e6581d 100644 (file)
@@ -23,6 +23,6 @@
 \*****************************************************************************/
 
 #ifndef _SPL_VM_PVN_H
-#define _SPL_VM_PVN_H
+#define        _SPL_VM_PVN_H
 
 #endif /* SPL_VM_PVN_H */
index 17df7b9617c4caeb49d015cb2f4b672546aad797..3ef2474d43fb5cfc7e223c5bc29258a80e7af0f0 100644 (file)
@@ -23,7 +23,7 @@
 \*****************************************************************************/
 
 #ifndef _SPL_SEG_KMEM_H
-#define _SPL_SEG_KMEM_H
+#define        _SPL_SEG_KMEM_H
 
 #include <sys/vmsystm.h>
 
index b12192b1cfe12dc7c56ec0657e343d3606431f76..b7fed09013e7a739e4b0d75a2378025cdf61398a 100644 (file)
@@ -47,7 +47,28 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(top_srcdir)/config/Rules.am
 subdir = lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index d995032f17702030da8a90c60c1b15a697add1e4..8c15e8d737bd539ca47615f132f2cfc55dd6c2a3 100644 (file)
@@ -37,7 +37,28 @@ target_triplet = @target@
 subdir = man
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 91feca75c194c859f5063fa649cbfde80b3cd126..373e36872983fe0c14e33fac0d596de3a3b94e46 100644 (file)
@@ -38,7 +38,28 @@ subdir = man/man1
 DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 5e3ab40c70b32d46faf4166d2194c2e2726f0a0a..15a7961baf0279ab3c02bada0664229e60c94ae6 100644 (file)
@@ -38,7 +38,28 @@ subdir = man/man5
 DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index c46252c105a2961b1d5f1ba93fefb943987be1d7..4e1e42c11ad9d217705fc0ba1a1c58ae58de6b29 100644 (file)
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Atomic Implementation.
 \*****************************************************************************/
 
 #include <sys/atomic.h>
 
-#ifdef DEBUG_SUBSYSTEM
-#undef DEBUG_SUBSYSTEM
-#endif
-
-#define DEBUG_SUBSYSTEM S_ATOMIC
-
 #ifdef ATOMIC_SPINLOCK
 /* Global atomic lock declarations */
 DEFINE_SPINLOCK(atomic32_lock);
index 80c2ef09051fd79129ae20d14bf33ae46f8852ea..f0060bbdcd6cb92e452f2971bf800f7ccd3e6297 100644 (file)
@@ -136,6 +136,13 @@ __cv_wait(kcondvar_t *cvp, kmutex_t *mp)
 }
 EXPORT_SYMBOL(__cv_wait);
 
+void
+__cv_wait_io(kcondvar_t *cvp, kmutex_t *mp)
+{
+       cv_wait_common(cvp, mp, TASK_UNINTERRUPTIBLE, 1);
+}
+EXPORT_SYMBOL(__cv_wait_io);
+
 void
 __cv_wait_sig(kcondvar_t *cvp, kmutex_t *mp)
 {
@@ -143,12 +150,34 @@ __cv_wait_sig(kcondvar_t *cvp, kmutex_t *mp)
 }
 EXPORT_SYMBOL(__cv_wait_sig);
 
-void
-__cv_wait_io(kcondvar_t *cvp, kmutex_t *mp)
+#if defined(HAVE_IO_SCHEDULE_TIMEOUT)
+#define        spl_io_schedule_timeout(t)      io_schedule_timeout(t)
+#else
+static void
+__cv_wakeup(unsigned long data)
 {
-       cv_wait_common(cvp, mp, TASK_UNINTERRUPTIBLE, 1);
+       wake_up_process((struct task_struct *)data);
 }
-EXPORT_SYMBOL(__cv_wait_io);
+
+static long
+spl_io_schedule_timeout(long time_left)
+{
+       long expire_time = jiffies + time_left;
+       struct timer_list timer;
+
+       init_timer(&timer);
+       setup_timer(&timer, __cv_wakeup, (unsigned long)current);
+       timer.expires = expire_time;
+       add_timer(&timer);
+
+       io_schedule();
+
+       del_timer_sync(&timer);
+       time_left = expire_time - jiffies;
+
+       return (time_left < 0 ? 0 : time_left);
+}
+#endif
 
 /*
  * 'expire_time' argument is an absolute wall clock time in jiffies.
@@ -156,7 +185,7 @@ EXPORT_SYMBOL(__cv_wait_io);
  */
 static clock_t
 __cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
-    int state)
+    int state, int io)
 {
        DEFINE_WAIT(wait);
        kmutex_t *m;
@@ -188,7 +217,10 @@ __cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
         * race where 'cvp->cv_waiters > 0' but the list is empty.
         */
        mutex_exit(mp);
-       time_left = schedule_timeout(time_left);
+       if (io)
+               time_left = spl_io_schedule_timeout(time_left);
+       else
+               time_left = schedule_timeout(time_left);
 
        /* No more waiters a different mutex could be used */
        if (atomic_dec_and_test(&cvp->cv_waiters)) {
@@ -214,14 +246,24 @@ __cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
 clock_t
 __cv_timedwait(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
 {
-       return (__cv_timedwait_common(cvp, mp, exp_time, TASK_UNINTERRUPTIBLE));
+       return (__cv_timedwait_common(cvp, mp, exp_time,
+           TASK_UNINTERRUPTIBLE, 0));
 }
 EXPORT_SYMBOL(__cv_timedwait);
 
+clock_t
+__cv_timedwait_io(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
+{
+       return (__cv_timedwait_common(cvp, mp, exp_time,
+           TASK_UNINTERRUPTIBLE, 1));
+}
+EXPORT_SYMBOL(__cv_timedwait_io);
+
 clock_t
 __cv_timedwait_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
 {
-       return (__cv_timedwait_common(cvp, mp, exp_time, TASK_INTERRUPTIBLE));
+       return (__cv_timedwait_common(cvp, mp, exp_time,
+           TASK_INTERRUPTIBLE, 0));
 }
 EXPORT_SYMBOL(__cv_timedwait_sig);
 
@@ -293,8 +335,8 @@ __cv_timedwait_hires(kcondvar_t *cvp, kmutex_t *mp, hrtime_t expire_time,
  * Compatibility wrapper for the cv_timedwait_hires() Illumos interface.
  */
 static clock_t
-cv_timedwait_hires_common(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim, hrtime_t res,
-    int flag, int state)
+cv_timedwait_hires_common(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim,
+    hrtime_t res, int flag, int state)
 {
        if (res > 1) {
                /*
@@ -321,8 +363,8 @@ cv_timedwait_hires(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim, hrtime_t res,
 EXPORT_SYMBOL(cv_timedwait_hires);
 
 clock_t
-cv_timedwait_sig_hires(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim, hrtime_t res,
-    int flag)
+cv_timedwait_sig_hires(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim,
+    hrtime_t res, int flag)
 {
        return (cv_timedwait_hires_common(cvp, mp, tim, res, flag,
            TASK_INTERRUPTIBLE));
index 1d486c1f0b1b62ceec02632abeba095d32b6cd55..f7f7d8711a23f9054edb1e4b4f0b9e62a4b108b6 100644 (file)
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Credential Implementation.
 \*****************************************************************************/
 
 #include <sys/cred.h>
 
-#ifdef DEBUG_SUBSYSTEM
-#undef DEBUG_SUBSYSTEM
-#endif
-
-#define DEBUG_SUBSYSTEM S_CRED
-
 static int
 #ifdef HAVE_KUIDGID_T
 cr_groups_search(const struct group_info *group_info, kgid_t grp)
@@ -43,7 +37,7 @@ cr_groups_search(const struct group_info *group_info, gid_t grp)
        int cmp;
 
        if (!group_info)
-               return 0;
+               return (0);
 
        left = 0;
        right = group_info->ngroups;
@@ -57,16 +51,16 @@ cr_groups_search(const struct group_info *group_info, gid_t grp)
                else if (cmp < 0)
                        right = mid;
                else
-                       return 1;
+                       return (1);
        }
-       return 0;
+       return (0);
 }
 
 /* Hold a reference on the credential */
 void
 crhold(cred_t *cr)
 {
-       (void)get_cred((const cred_t *)cr);
+       (void) get_cred((const cred_t *)cr);
 }
 
 /* Free a reference on the credential */
@@ -96,7 +90,7 @@ crgetngroups(const cred_t *cr)
                rc = NGROUPS_PER_BLOCK;
        }
 #endif
-       return rc;
+       return (rc);
 }
 
 /*
@@ -119,7 +113,7 @@ crgetgroups(const cred_t *cr)
        if (gi->nblocks > 0)
                gids = KGIDP_TO_SGIDP(gi->blocks[0]);
 #endif
-       return gids;
+       return (gids);
 }
 
 /* Check if the passed gid is available in supplied credential. */
@@ -132,63 +126,63 @@ groupmember(gid_t gid, const cred_t *cr)
        gi = cr->group_info;
        rc = cr_groups_search(gi, SGID_TO_KGID(gid));
 
-       return rc;
+       return (rc);
 }
 
 /* Return the effective user id */
 uid_t
 crgetuid(const cred_t *cr)
 {
-       return KUID_TO_SUID(cr->euid);
+       return (KUID_TO_SUID(cr->euid));
 }
 
 /* Return the real user id */
 uid_t
 crgetruid(const cred_t *cr)
 {
-       return KUID_TO_SUID(cr->uid);
+       return (KUID_TO_SUID(cr->uid));
 }
 
 /* Return the saved user id */
 uid_t
 crgetsuid(const cred_t *cr)
 {
-       return KUID_TO_SUID(cr->suid);
+       return (KUID_TO_SUID(cr->suid));
 }
 
 /* Return the filesystem user id */
 uid_t
 crgetfsuid(const cred_t *cr)
 {
-       return KUID_TO_SUID(cr->fsuid);
+       return (KUID_TO_SUID(cr->fsuid));
 }
 
 /* Return the effective group id */
 gid_t
 crgetgid(const cred_t *cr)
 {
-       return KGID_TO_SGID(cr->egid);
+       return (KGID_TO_SGID(cr->egid));
 }
 
 /* Return the real group id */
 gid_t
 crgetrgid(const cred_t *cr)
 {
-       return KGID_TO_SGID(cr->gid);
+       return (KGID_TO_SGID(cr->gid));
 }
 
 /* Return the saved group id */
 gid_t
 crgetsgid(const cred_t *cr)
 {
-       return KGID_TO_SGID(cr->sgid);
+       return (KGID_TO_SGID(cr->sgid));
 }
 
 /* Return the filesystem group id */
 gid_t
 crgetfsgid(const cred_t *cr)
 {
-       return KGID_TO_SGID(cr->fsgid);
+       return (KGID_TO_SGID(cr->fsgid));
 }
 
 EXPORT_SYMBOL(crhold);
index 2f66b6e23cb6fc5d4eecc72e34d97ebb9ab146d3..adfa555aeac1aa12dc0794de1a41c7077e3c8255 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Error Implementation.
 \*****************************************************************************/
 
  * analysis and other such goodies.
  * But we would still default to the current default of not to do that.
  */
+/* BEGIN CSTYLED */
 unsigned int spl_panic_halt;
 module_param(spl_panic_halt, uint, 0644);
-MODULE_PARM_DESC(spl_panic_halt,
-                "Cause kernel panic on assertion failures");
+MODULE_PARM_DESC(spl_panic_halt, "Cause kernel panic on assertion failures");
+/* END CSTYLED */
 
 /*
  * Limit the number of stack traces dumped to not more than 5 every
@@ -56,7 +57,8 @@ spl_dumpstack(void)
 EXPORT_SYMBOL(spl_dumpstack);
 
 int
-spl_panic(const char *file, const char *func, int line, const char *fmt, ...) {
+spl_panic(const char *file, const char *func, int line, const char *fmt, ...)
+{
        const char *newfile;
        char msg[MAXMSGLEN];
        va_list ap;
index f6782dae73af08eec0b54c2da385ece22c405812..1098d9a545c05f2a359cc905a2a0849b03cdbaa3 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Generic Implementation.
 \*****************************************************************************/
 
 char spl_version[32] = "SPL v" SPL_META_VERSION "-" SPL_META_RELEASE;
 EXPORT_SYMBOL(spl_version);
 
+/* BEGIN CSTYLED */
 unsigned long spl_hostid = 0;
 EXPORT_SYMBOL(spl_hostid);
 module_param(spl_hostid, ulong, 0644);
 MODULE_PARM_DESC(spl_hostid, "The system hostid.");
+/* END CSTYLED */
 
 proc_t p0;
 EXPORT_SYMBOL(p0);
@@ -98,7 +100,8 @@ static DEFINE_PER_CPU(uint64_t[2], spl_pseudo_entropy);
  */
 
 static inline uint64_t
-spl_rand_next(uint64_t *s) {
+spl_rand_next(uint64_t *s)
+{
        uint64_t s1 = s[0];
        const uint64_t s0 = s[1];
        s[0] = s0;
@@ -108,14 +111,16 @@ spl_rand_next(uint64_t *s) {
 }
 
 static inline void
-spl_rand_jump(uint64_t *s) {
-       static const uint64_t JUMP[] = { 0x8a5cd789635d2dff, 0x121fd2155c472f96 };
+spl_rand_jump(uint64_t *s)
+{
+       static const uint64_t JUMP[] =
+           { 0x8a5cd789635d2dff, 0x121fd2155c472f96 };
 
        uint64_t s0 = 0;
        uint64_t s1 = 0;
        int i, b;
-       for(i = 0; i < sizeof JUMP / sizeof *JUMP; i++)
-               for(b = 0; b < 64; b++) {
+       for (i = 0; i < sizeof (JUMP) / sizeof (*JUMP); i++)
+               for (b = 0; b < 64; b++) {
                        if (JUMP[i] & 1ULL << b) {
                                s0 ^= s[0];
                                s1 ^= s[1];
@@ -183,20 +188,21 @@ EXPORT_SYMBOL(random_get_pseudo_bytes);
  * Calculate number of leading of zeros for a 64-bit value.
  */
 static int
-nlz64(uint64_t x) {
+nlz64(uint64_t x)
+{
        register int n = 0;
 
        if (x == 0)
-               return 64;
+               return (64);
 
-       if (x <= 0x00000000FFFFFFFFULL) {n = n + 32; x = x << 32;}
-       if (x <= 0x0000FFFFFFFFFFFFULL) {n = n + 16; x = x << 16;}
-       if (x <= 0x00FFFFFFFFFFFFFFULL) {n = n +  8; x = x <<  8;}
-       if (x <= 0x0FFFFFFFFFFFFFFFULL) {n = n +  4; x = x <<  4;}
-       if (x <= 0x3FFFFFFFFFFFFFFFULL) {n = n +  2; x = x <<  2;}
-       if (x <= 0x7FFFFFFFFFFFFFFFULL) {n = n +  1;}
+       if (x <= 0x00000000FFFFFFFFULL) { n = n + 32; x = x << 32; }
+       if (x <= 0x0000FFFFFFFFFFFFULL) { n = n + 16; x = x << 16; }
+       if (x <= 0x00FFFFFFFFFFFFFFULL) { n = n +  8; x = x <<  8; }
+       if (x <= 0x0FFFFFFFFFFFFFFFULL) { n = n +  4; x = x <<  4; }
+       if (x <= 0x3FFFFFFFFFFFFFFFULL) { n = n +  2; x = x <<  2; }
+       if (x <= 0x7FFFFFFFFFFFFFFFULL) { n = n +  1; }
 
-       return n;
+       return (n);
 }
 
 /*
@@ -207,7 +213,7 @@ static inline uint64_t
 __div_u64(uint64_t u, uint32_t v)
 {
        (void) do_div(u, v);
-       return u;
+       return (u);
 }
 
 /*
@@ -227,7 +233,7 @@ __udivdi3(uint64_t u, uint64_t v)
 
        if (v >> 32 == 0) {                     // If v < 2**32:
                if (u >> 32 < v) {              // If u/v cannot overflow,
-                       return __div_u64(u, v); // just do one division.
+                       return (__div_u64(u, v)); // just do one division.
                } else {                        // If u/v would overflow:
                        u1 = u >> 32;           // Break u into two halves.
                        u0 = u & 0xFFFFFFFF;
@@ -235,7 +241,7 @@ __udivdi3(uint64_t u, uint64_t v)
                        k  = u1 - q1 * v;       // First remainder, < v.
                        u0 += (k << 32);
                        q0 = __div_u64(u0, v);  // Seconds quotient digit.
-                       return (q1 << 32) + q0;
+                       return ((q1 << 32) + q0);
                }
        } else {                                // If v >= 2**32:
                n = nlz64(v);                   // 0 <= n <= 31.
@@ -249,7 +255,7 @@ __udivdi3(uint64_t u, uint64_t v)
                if ((u - q0 * v) >= v)
                        q0 = q0 + 1;            // Now q0 is correct.
 
-               return q0;
+               return (q0);
        }
 }
 EXPORT_SYMBOL(__udivdi3);
@@ -263,7 +269,7 @@ __divdi3(int64_t u, int64_t v)
        int64_t q, t;
        q = __udivdi3(abs64(u), abs64(v));
        t = (u ^ v) >> 63;      // If u, v have different
-       return (q ^ t) - t;     // signs, negate q.
+       return ((q ^ t) - t);   // signs, negate q.
 }
 EXPORT_SYMBOL(__divdi3);
 
@@ -344,9 +350,11 @@ __aeabi_uldivmod(uint64_t u, uint64_t v)
                register uint32_t r2 asm("r2") = (mod & 0xFFFFFFFF);
                register uint32_t r3 asm("r3") = (mod >> 32);
 
+               /* BEGIN CSTYLED */
                asm volatile(""
                    : "+r"(r0), "+r"(r1), "+r"(r2),"+r"(r3)  /* output */
                    : "r"(r0), "r"(r1), "r"(r2), "r"(r3));   /* input */
+               /* END CSTYLED */
 
                return; /* r0; */
        }
@@ -367,9 +375,11 @@ __aeabi_ldivmod(int64_t u, int64_t v)
                register uint32_t r2 asm("r2") = (mod & 0xFFFFFFFF);
                register uint32_t r3 asm("r3") = (mod >> 32);
 
+               /* BEGIN CSTYLED */
                asm volatile(""
                    : "+r"(r0), "+r"(r1), "+r"(r2),"+r"(r3)  /* output */
                    : "r"(r0), "r"(r1), "r"(r2), "r"(r3));   /* input */
+               /* END CSTYLED */
 
                return; /* r0; */
        }
@@ -378,7 +388,8 @@ EXPORT_SYMBOL(__aeabi_ldivmod);
 #endif /* __arm || __arm__ */
 #endif /* BITS_PER_LONG */
 
-/* NOTE: The strtoxx behavior is solely based on my reading of the Solaris
+/*
+ * NOTE: The strtoxx behavior is solely based on my reading of the Solaris
  * ddi_strtol(9F) man page.  I have not verified the behavior of these
  * functions against their Solaris counterparts.  It is possible that I
  * may have misinterpreted the man page or the man page is incorrect.
@@ -388,28 +399,28 @@ int ddi_strtol(const char *, char **, int, long *);
 int ddi_strtoull(const char *, char **, int, unsigned long long *);
 int ddi_strtoll(const char *, char **, int, long long *);
 
-#define define_ddi_strtoux(type, valtype)                              \
+#define        define_ddi_strtoux(type, valtype)                               \
 int ddi_strtou##type(const char *str, char **endptr,                   \
-                    int base, valtype *result)                         \
+    int base, valtype *result)                                         \
 {                                                                      \
        valtype last_value, value = 0;                                  \
        char *ptr = (char *)str;                                        \
        int flag = 1, digit;                                            \
                                                                        \
        if (strlen(ptr) == 0)                                           \
-               return EINVAL;                                          \
+               return (EINVAL);                                        \
                                                                        \
        /* Auto-detect base based on prefix */                          \
        if (!base) {                                                    \
                if (str[0] == '0') {                                    \
-                       if (tolower(str[1])=='x' && isxdigit(str[2])) { \
+                       if (tolower(str[1]) == 'x' && isxdigit(str[2])) { \
                                base = 16; /* hex */                    \
                                ptr += 2;                               \
                        } else if (str[1] >= '0' && str[1] < 8) {       \
                                base = 8; /* octal */                   \
                                ptr += 1;                               \
                        } else {                                        \
-                               return EINVAL;                          \
+                               return (EINVAL);                        \
                        }                                               \
                } else {                                                \
                        base = 10; /* decimal */                        \
@@ -430,7 +441,7 @@ int ddi_strtou##type(const char *str, char **endptr,                        \
                last_value = value;                                     \
                value = value * base + digit;                           \
                if (last_value > value) /* Overflow */                  \
-                       return ERANGE;                                  \
+                       return (ERANGE);                                \
                                                                        \
                flag = 1;                                               \
                ptr++;                                                  \
@@ -442,12 +453,12 @@ int ddi_strtou##type(const char *str, char **endptr,                      \
        if (endptr)                                                     \
                *endptr = (char *)(flag ? ptr : str);                   \
                                                                        \
-       return 0;                                                       \
+       return (0);                                                     \
 }                                                                      \
 
-#define define_ddi_strtox(type, valtype)                               \
+#define        define_ddi_strtox(type, valtype)                                \
 int ddi_strto##type(const char *str, char **endptr,                    \
-                      int base, valtype *result)                       \
+    int base, valtype *result)                                         \
 {                                                                      \
        int rc;                                                         \
                                                                        \
@@ -463,7 +474,7 @@ int ddi_strto##type(const char *str, char **endptr,                 \
                rc = ddi_strtou##type(str, endptr, base, result);       \
        }                                                               \
                                                                        \
-       return rc;                                                      \
+       return (rc);                                                    \
 }
 
 define_ddi_strtoux(l, unsigned long)
@@ -482,10 +493,10 @@ ddi_copyin(const void *from, void *to, size_t len, int flags)
        /* Fake ioctl() issued by kernel, 'from' is a kernel address */
        if (flags & FKIOCTL) {
                memcpy(to, from, len);
-               return 0;
+               return (0);
        }
 
-       return copyin(from, to, len);
+       return (copyin(from, to, len));
 }
 EXPORT_SYMBOL(ddi_copyin);
 
@@ -495,10 +506,10 @@ ddi_copyout(const void *from, void *to, size_t len, int flags)
        /* Fake ioctl() issued by kernel, 'from' is a kernel address */
        if (flags & FKIOCTL) {
                memcpy(to, from, len);
-               return 0;
+               return (0);
        }
 
-       return copyout(from, to, len);
+       return (copyout(from, to, len));
 }
 EXPORT_SYMBOL(ddi_copyout);
 
@@ -559,7 +570,7 @@ hostid_read(uint32_t *hostid)
                return (error);
        }
 
-       if (size < sizeof(HW_HOSTID_MASK)) {
+       if (size < sizeof (HW_HOSTID_MASK)) {
                kobj_close_file(file);
                return (EINVAL);
        }
@@ -568,7 +579,7 @@ hostid_read(uint32_t *hostid)
         * Read directly into the variable like eglibc does.
         * Short reads are okay; native behavior is preserved.
         */
-       error = kobj_read_file(file, (char *)&value, sizeof(value), 0);
+       error = kobj_read_file(file, (char *)&value, sizeof (value), 0);
        if (error < 0) {
                kobj_close_file(file);
                return (EIO);
@@ -578,7 +589,7 @@ hostid_read(uint32_t *hostid)
        *hostid = (value & HW_HOSTID_MASK);
        kobj_close_file(file);
 
-       return 0;
+       return (0);
 }
 
 /*
@@ -704,7 +715,7 @@ spl_init(void)
                goto out10;
 
        printk(KERN_NOTICE "SPL: Loaded module v%s-%s%s\n", SPL_META_VERSION,
-              SPL_META_RELEASE, SPL_DEBUG_STR);
+           SPL_META_RELEASE, SPL_DEBUG_STR);
        return (rc);
 
 out10:
@@ -727,8 +738,8 @@ out2:
        spl_kvmem_fini();
 out1:
        printk(KERN_NOTICE "SPL: Failed to Load Solaris Porting Layer "
-              "v%s-%s%s, rc = %d\n", SPL_META_VERSION, SPL_META_RELEASE,
-              SPL_DEBUG_STR, rc);
+           "v%s-%s%s, rc = %d\n", SPL_META_VERSION, SPL_META_RELEASE,
+           SPL_DEBUG_STR, rc);
 
        return (rc);
 }
@@ -737,7 +748,7 @@ static void __exit
 spl_fini(void)
 {
        printk(KERN_NOTICE "SPL: Unloaded module v%s-%s%s\n",
-              SPL_META_VERSION, SPL_META_RELEASE, SPL_DEBUG_STR);
+           SPL_META_VERSION, SPL_META_RELEASE, SPL_DEBUG_STR);
        spl_zlib_fini();
        spl_kstat_fini();
        spl_proc_fini();
index 45576b9761e72863495bd6c5e8259b5d85bcec36..c73a2fdc24784593221fd5855512b4ac0b807d90 100644 (file)
@@ -66,6 +66,7 @@
  * because it has been shown to improve responsiveness on low memory systems.
  * This policy may be changed by setting KMC_EXPIRE_AGE or KMC_EXPIRE_MEM.
  */
+/* BEGIN CSTYLED */
 unsigned int spl_kmem_cache_expire = KMC_EXPIRE_MEM;
 EXPORT_SYMBOL(spl_kmem_cache_expire);
 module_param(spl_kmem_cache_expire, uint, 0644);
@@ -134,8 +135,8 @@ MODULE_PARM_DESC(spl_kmem_cache_slab_limit,
  * have been deemed costly by the kernel.
  */
 unsigned int spl_kmem_cache_kmem_limit =
-    ((1 << (PAGE_ALLOC_COSTLY_ORDER - 1)) * PAGE_SIZE) /
-    SPL_KMEM_CACHE_OBJ_PER_SLAB;
+       ((1 << (PAGE_ALLOC_COSTLY_ORDER - 1)) * PAGE_SIZE) /
+       SPL_KMEM_CACHE_OBJ_PER_SLAB;
 module_param(spl_kmem_cache_kmem_limit, uint, 0644);
 MODULE_PARM_DESC(spl_kmem_cache_kmem_limit,
        "Objects less than N bytes use the kmalloc");
@@ -148,6 +149,7 @@ unsigned int spl_kmem_cache_kmem_threads = 4;
 module_param(spl_kmem_cache_kmem_threads, uint, 0444);
 MODULE_PARM_DESC(spl_kmem_cache_kmem_threads,
        "Number of spl_kmem_cache threads");
+/* END CSTYLED */
 
 /*
  * Slab allocation interfaces
@@ -356,8 +358,9 @@ out:
        if (rc) {
                if (skc->skc_flags & KMC_OFFSLAB)
                        list_for_each_entry_safe(sko,
-                           n, &sks->sks_free_list, sko_list)
+                           n, &sks->sks_free_list, sko_list) {
                                kv_free(skc, sko->sko_addr, offslab_size);
+                       }
 
                kv_free(skc, base, skc->skc_slab_size);
                sks = NULL;
@@ -382,7 +385,6 @@ spl_slab_free(spl_kmem_slab_t *sks,
 
        skc = sks->sks_cache;
        ASSERT(skc->skc_magic == SKC_MAGIC);
-       ASSERT(spin_is_locked(&skc->skc_lock));
 
        /*
         * Update slab/objects counters in the cache, then remove the
@@ -583,7 +585,6 @@ __spl_cache_flush(spl_kmem_cache_t *skc, spl_kmem_magazine_t *skm, int flush)
 
        ASSERT(skc->skc_magic == SKC_MAGIC);
        ASSERT(skm->skm_magic == SKM_MAGIC);
-       ASSERT(spin_is_locked(&skc->skc_lock));
 
        for (i = 0; i < count; i++)
                spl_cache_shrink(skc, skm->skm_objs[i]);
@@ -1002,15 +1003,15 @@ spl_kmem_cache_create(char *name, size_t size, size_t align,
 #endif
 
 #if defined(HAVE_KMEM_CACHE_CREATE_USERCOPY)
-        /*
-         * Newer grsec patchset uses kmem_cache_create_usercopy()
-         * instead of SLAB_USERCOPY flag
-         */
-        skc->skc_linux_cache = kmem_cache_create_usercopy(
-            skc->skc_name, size, align, slabflags, 0, size, NULL);
+       /*
+        * Newer grsec patchset uses kmem_cache_create_usercopy()
+        * instead of SLAB_USERCOPY flag
+        */
+       skc->skc_linux_cache = kmem_cache_create_usercopy(
+           skc->skc_name, size, align, slabflags, 0, size, NULL);
 #else
-        skc->skc_linux_cache = kmem_cache_create(
-            skc->skc_name, size, align, slabflags, NULL);
+       skc->skc_linux_cache = kmem_cache_create(
+           skc->skc_name, size, align, slabflags, NULL);
 #endif
                if (skc->skc_linux_cache == NULL) {
                        rc = ENOMEM;
@@ -1125,7 +1126,6 @@ spl_cache_obj(spl_kmem_cache_t *skc, spl_kmem_slab_t *sks)
 
        ASSERT(skc->skc_magic == SKC_MAGIC);
        ASSERT(sks->sks_magic == SKS_MAGIC);
-       ASSERT(spin_is_locked(&skc->skc_lock));
 
        sko = list_entry(sks->sks_free_list.next, spl_kmem_obj_t, sko_list);
        ASSERT(sko->sko_magic == SKO_MAGIC);
@@ -1189,7 +1189,7 @@ spl_cache_grow_work(void *data)
        spl_kmem_alloc_t *ska = (spl_kmem_alloc_t *)data;
        spl_kmem_cache_t *skc = ska->ska_cache;
 
-       (void)__spl_cache_grow(skc, ska->ska_flags);
+       (void) __spl_cache_grow(skc, ska->ska_flags);
 
        atomic_dec(&skc->skc_ref);
        smp_mb__before_atomic();
@@ -1396,7 +1396,6 @@ spl_cache_shrink(spl_kmem_cache_t *skc, void *obj)
        spl_kmem_obj_t *sko = NULL;
 
        ASSERT(skc->skc_magic == SKC_MAGIC);
-       ASSERT(spin_is_locked(&skc->skc_lock));
 
        sko = spl_sko_from_obj(skc, obj);
        ASSERT(sko->sko_magic == SKO_MAGIC);
index 41bec75d2695534dd5908d483dba719006ef3dd6..e0d551041fd37ce80ad4837cf44ad3002f754905 100755 (executable)
@@ -44,6 +44,7 @@
  * allocations are quickly caught.  These warnings may be disabled by setting
  * the threshold to zero.
  */
+/* BEGIN CSTYLED */
 unsigned int spl_kmem_alloc_warn = MIN(16 * PAGE_SIZE, 64 * 1024);
 module_param(spl_kmem_alloc_warn, uint, 0644);
 MODULE_PARM_DESC(spl_kmem_alloc_warn,
@@ -64,6 +65,7 @@ module_param(spl_kmem_alloc_max, uint, 0644);
 MODULE_PARM_DESC(spl_kmem_alloc_max,
        "Maximum size in bytes for a kmem_alloc()");
 EXPORT_SYMBOL(spl_kmem_alloc_max);
+/* END CSTYLED */
 
 int
 kmem_debugging(void)
@@ -383,7 +385,7 @@ spl_kmem_free_track(const void *ptr, size_t size)
 {
        kmem_debug_t *dptr;
 
-       /* Ignore NULL pointer since we haven't tracked it at all*/
+       /* Ignore NULL pointer since we haven't tracked it at all */
        if (ptr == NULL)
                return;
 
@@ -520,10 +522,11 @@ spl_kmem_fini_tracking(struct list_head *list, spinlock_t *lock)
                printk(KERN_WARNING "%-16s %-5s %-16s %s:%s\n", "address",
                    "size", "data", "func", "line");
 
-       list_for_each_entry(kd, list, kd_list)
+       list_for_each_entry(kd, list, kd_list) {
                printk(KERN_WARNING "%p %-5d %-16s %s:%d\n", kd->kd_addr,
                    (int)kd->kd_size, spl_sprintf_addr(kd, str, 17, 8),
                    kd->kd_func, kd->kd_line);
+       }
 
        spin_unlock_irqrestore(lock, flags);
 }
index b79fcb82836c83bba4d448fa49e14882848134dc..500f246417e4d6f83cd43be638a3725b980b269c 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Kobj Implementation.
 \*****************************************************************************/
 
@@ -33,7 +33,7 @@ kobj_open_file(const char *name)
        vnode_t *vp;
        int rc;
 
-       file = kmalloc(sizeof(_buf_t), kmem_flags_convert(KM_SLEEP));
+       file = kmalloc(sizeof (_buf_t), kmem_flags_convert(KM_SLEEP));
        if (file == NULL)
                return ((_buf_t *)-1UL);
 
@@ -52,7 +52,7 @@ void
 kobj_close_file(struct _buf *file)
 {
        VOP_CLOSE(file->vp, 0, 0, 0, 0, 0);
-        kfree(file);
+       kfree(file);
 } /* kobj_close_file() */
 EXPORT_SYMBOL(kobj_close_file);
 
@@ -72,15 +72,15 @@ EXPORT_SYMBOL(kobj_read_file);
 int
 kobj_get_filesize(struct _buf *file, uint64_t *size)
 {
-        vattr_t vap;
+       vattr_t vap;
        int rc;
 
        rc = VOP_GETATTR(file->vp, &vap, 0, 0, NULL);
        if (rc)
                return (rc);
 
-        *size = vap.va_size;
+       *size = vap.va_size;
 
-        return (rc);
+       return (rc);
 } /* kobj_get_filesize() */
 EXPORT_SYMBOL(kobj_get_filesize);
index e306915a67772e9c49ef6ecb0f16547302312a56..6970fcc8a84b5c77a010b0a984dbb9c57ef23bfa 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Kstat Implementation.
 \*****************************************************************************/
 
@@ -30,7 +30,7 @@
 #include <sys/cmn_err.h>
 
 #ifndef HAVE_PDE_DATA
-#define PDE_DATA(x) (PDE(x)->data)
+#define        PDE_DATA(x) (PDE(x)->data)
 #endif
 
 static kmutex_t kstat_module_lock;
@@ -41,13 +41,13 @@ static int
 kstat_resize_raw(kstat_t *ksp)
 {
        if (ksp->ks_raw_bufsize == KSTAT_RAW_MAX)
-               return ENOMEM;
+               return (ENOMEM);
 
        vmem_free(ksp->ks_raw_buf, ksp->ks_raw_bufsize);
        ksp->ks_raw_bufsize = MIN(ksp->ks_raw_bufsize * 2, KSTAT_RAW_MAX);
        ksp->ks_raw_buf = vmem_alloc(ksp->ks_raw_bufsize, KM_SLEEP);
 
-       return 0;
+       return (0);
 }
 
 void
@@ -119,213 +119,215 @@ EXPORT_SYMBOL(kstat_runq_exit);
 static int
 kstat_seq_show_headers(struct seq_file *f)
 {
-        kstat_t *ksp = (kstat_t *)f->private;
+       kstat_t *ksp = (kstat_t *)f->private;
        int rc = 0;
 
-        ASSERT(ksp->ks_magic == KS_MAGIC);
+       ASSERT(ksp->ks_magic == KS_MAGIC);
 
-        seq_printf(f, "%d %d 0x%02x %d %d %lld %lld\n",
-                  ksp->ks_kid, ksp->ks_type, ksp->ks_flags,
-                  ksp->ks_ndata, (int)ksp->ks_data_size,
-                  ksp->ks_crtime, ksp->ks_snaptime);
+       seq_printf(f, "%d %d 0x%02x %d %d %lld %lld\n",
+           ksp->ks_kid, ksp->ks_type, ksp->ks_flags,
+           ksp->ks_ndata, (int)ksp->ks_data_size,
+           ksp->ks_crtime, ksp->ks_snaptime);
 
        switch (ksp->ks_type) {
-                case KSTAT_TYPE_RAW:
+               case KSTAT_TYPE_RAW:
 restart:
-                        if (ksp->ks_raw_ops.headers) {
-                                rc = ksp->ks_raw_ops.headers(
-                                    ksp->ks_raw_buf, ksp->ks_raw_bufsize);
+                       if (ksp->ks_raw_ops.headers) {
+                               rc = ksp->ks_raw_ops.headers(
+                                   ksp->ks_raw_buf, ksp->ks_raw_bufsize);
                                if (rc == ENOMEM && !kstat_resize_raw(ksp))
                                        goto restart;
                                if (!rc)
-                                       seq_puts(f, ksp->ks_raw_buf);
-                        } else {
-                                seq_printf(f, "raw data\n");
-                        }
-                        break;
-                case KSTAT_TYPE_NAMED:
-                        seq_printf(f, "%-31s %-4s %s\n",
-                                   "name", "type", "data");
-                        break;
-                case KSTAT_TYPE_INTR:
-                        seq_printf(f, "%-8s %-8s %-8s %-8s %-8s\n",
-                                   "hard", "soft", "watchdog",
-                                   "spurious", "multsvc");
-                        break;
-                case KSTAT_TYPE_IO:
-                        seq_printf(f,
-                                   "%-8s %-8s %-8s %-8s %-8s %-8s "
-                                   "%-8s %-8s %-8s %-8s %-8s %-8s\n",
-                                   "nread", "nwritten", "reads", "writes",
-                                   "wtime", "wlentime", "wupdate",
-                                   "rtime", "rlentime", "rupdate",
-                                   "wcnt", "rcnt");
-                        break;
-                case KSTAT_TYPE_TIMER:
-                        seq_printf(f,
-                                   "%-31s %-8s "
-                                   "%-8s %-8s %-8s %-8s %-8s\n",
-                                   "name", "events", "elapsed",
-                                   "min", "max", "start", "stop");
-                        break;
-                default:
-                        PANIC("Undefined kstat type %d\n", ksp->ks_type);
-        }
-
-       return -rc;
+                                       seq_puts(f, ksp->ks_raw_buf);
+                       } else {
+                               seq_printf(f, "raw data\n");
+                       }
+                       break;
+               case KSTAT_TYPE_NAMED:
+                       seq_printf(f, "%-31s %-4s %s\n",
+                           "name", "type", "data");
+                       break;
+               case KSTAT_TYPE_INTR:
+                       seq_printf(f, "%-8s %-8s %-8s %-8s %-8s\n",
+                           "hard", "soft", "watchdog",
+                           "spurious", "multsvc");
+                       break;
+               case KSTAT_TYPE_IO:
+                       seq_printf(f,
+                           "%-8s %-8s %-8s %-8s %-8s %-8s "
+                           "%-8s %-8s %-8s %-8s %-8s %-8s\n",
+                           "nread", "nwritten", "reads", "writes",
+                           "wtime", "wlentime", "wupdate",
+                           "rtime", "rlentime", "rupdate",
+                           "wcnt", "rcnt");
+                       break;
+               case KSTAT_TYPE_TIMER:
+                       seq_printf(f,
+                           "%-31s %-8s "
+                           "%-8s %-8s %-8s %-8s %-8s\n",
+                           "name", "events", "elapsed",
+                           "min", "max", "start", "stop");
+                       break;
+               default:
+                       PANIC("Undefined kstat type %d\n", ksp->ks_type);
+       }
+
+       return (-rc);
 }
 
 static int
 kstat_seq_show_raw(struct seq_file *f, unsigned char *p, int l)
 {
-        int i, j;
+       int i, j;
 
-        for (i = 0; ; i++) {
-                seq_printf(f, "%03x:", i);
+       for (i = 0; ; i++) {
+               seq_printf(f, "%03x:", i);
 
-                for (j = 0; j < 16; j++) {
-                        if (i * 16 + j >= l) {
-                                seq_printf(f, "\n");
-                                goto out;
-                        }
+               for (j = 0; j < 16; j++) {
+                       if (i * 16 + j >= l) {
+                               seq_printf(f, "\n");
+                               goto out;
+                       }
 
-                        seq_printf(f, " %02x", (unsigned char)p[i * 16 + j]);
-                }
-                seq_printf(f, "\n");
-        }
+                       seq_printf(f, " %02x", (unsigned char)p[i * 16 + j]);
+               }
+               seq_printf(f, "\n");
+       }
 out:
-        return 0;
+       return (0);
 }
 
 static int
 kstat_seq_show_named(struct seq_file *f, kstat_named_t *knp)
 {
-        seq_printf(f, "%-31s %-4d ", knp->name, knp->data_type);
-
-        switch (knp->data_type) {
-                case KSTAT_DATA_CHAR:
-                        knp->value.c[15] = '\0'; /* NULL terminate */
-                        seq_printf(f, "%-16s", knp->value.c);
-                        break;
-                /* XXX - We need to be more careful able what tokens are
-                 * used for each arch, for now this is correct for x86_64.
-                 */
-                case KSTAT_DATA_INT32:
-                        seq_printf(f, "%d", knp->value.i32);
-                        break;
-                case KSTAT_DATA_UINT32:
-                        seq_printf(f, "%u", knp->value.ui32);
-                        break;
-                case KSTAT_DATA_INT64:
-                        seq_printf(f, "%lld", (signed long long)knp->value.i64);
-                        break;
-                case KSTAT_DATA_UINT64:
-                        seq_printf(f, "%llu", (unsigned long long)knp->value.ui64);
-                        break;
-                case KSTAT_DATA_LONG:
-                        seq_printf(f, "%ld", knp->value.l);
-                        break;
-                case KSTAT_DATA_ULONG:
-                        seq_printf(f, "%lu", knp->value.ul);
-                        break;
-                case KSTAT_DATA_STRING:
-                        KSTAT_NAMED_STR_PTR(knp)
-                                [KSTAT_NAMED_STR_BUFLEN(knp)-1] = '\0';
-                        seq_printf(f, "%s", KSTAT_NAMED_STR_PTR(knp));
-                        break;
-                default:
-                        PANIC("Undefined kstat data type %d\n", knp->data_type);
-        }
-
-        seq_printf(f, "\n");
-
-        return 0;
+       seq_printf(f, "%-31s %-4d ", knp->name, knp->data_type);
+
+       switch (knp->data_type) {
+               case KSTAT_DATA_CHAR:
+                       knp->value.c[15] = '\0'; /* NULL terminate */
+                       seq_printf(f, "%-16s", knp->value.c);
+                       break;
+               /*
+                * NOTE - We need to be more careful able what tokens are
+                * used for each arch, for now this is correct for x86_64.
+                */
+               case KSTAT_DATA_INT32:
+                       seq_printf(f, "%d", knp->value.i32);
+                       break;
+               case KSTAT_DATA_UINT32:
+                       seq_printf(f, "%u", knp->value.ui32);
+                       break;
+               case KSTAT_DATA_INT64:
+                       seq_printf(f, "%lld", (signed long long)knp->value.i64);
+                       break;
+               case KSTAT_DATA_UINT64:
+                       seq_printf(f, "%llu",
+                           (unsigned long long)knp->value.ui64);
+                       break;
+               case KSTAT_DATA_LONG:
+                       seq_printf(f, "%ld", knp->value.l);
+                       break;
+               case KSTAT_DATA_ULONG:
+                       seq_printf(f, "%lu", knp->value.ul);
+                       break;
+               case KSTAT_DATA_STRING:
+                       KSTAT_NAMED_STR_PTR(knp)
+                               [KSTAT_NAMED_STR_BUFLEN(knp)-1] = '\0';
+                       seq_printf(f, "%s", KSTAT_NAMED_STR_PTR(knp));
+                       break;
+               default:
+                       PANIC("Undefined kstat data type %d\n", knp->data_type);
+       }
+
+       seq_printf(f, "\n");
+
+       return (0);
 }
 
 static int
 kstat_seq_show_intr(struct seq_file *f, kstat_intr_t *kip)
 {
-        seq_printf(f, "%-8u %-8u %-8u %-8u %-8u\n",
-                   kip->intrs[KSTAT_INTR_HARD],
-                   kip->intrs[KSTAT_INTR_SOFT],
-                   kip->intrs[KSTAT_INTR_WATCHDOG],
-                   kip->intrs[KSTAT_INTR_SPURIOUS],
-                   kip->intrs[KSTAT_INTR_MULTSVC]);
-
-        return 0;
+       seq_printf(f, "%-8u %-8u %-8u %-8u %-8u\n",
+           kip->intrs[KSTAT_INTR_HARD],
+           kip->intrs[KSTAT_INTR_SOFT],
+           kip->intrs[KSTAT_INTR_WATCHDOG],
+           kip->intrs[KSTAT_INTR_SPURIOUS],
+           kip->intrs[KSTAT_INTR_MULTSVC]);
+
+       return (0);
 }
 
 static int
 kstat_seq_show_io(struct seq_file *f, kstat_io_t *kip)
 {
-        seq_printf(f,
-                   "%-8llu %-8llu %-8u %-8u %-8lld %-8lld "
-                   "%-8lld %-8lld %-8lld %-8lld %-8u %-8u\n",
-                   kip->nread, kip->nwritten,
-                   kip->reads, kip->writes,
-                   kip->wtime, kip->wlentime, kip->wlastupdate,
-                   kip->rtime, kip->rlentime, kip->rlastupdate,
-                   kip->wcnt,  kip->rcnt);
-
-        return 0;
+       seq_printf(f,
+           "%-8llu %-8llu %-8u %-8u %-8lld %-8lld "
+           "%-8lld %-8lld %-8lld %-8lld %-8u %-8u\n",
+           kip->nread, kip->nwritten,
+           kip->reads, kip->writes,
+           kip->wtime, kip->wlentime, kip->wlastupdate,
+           kip->rtime, kip->rlentime, kip->rlastupdate,
+           kip->wcnt,  kip->rcnt);
+
+       return (0);
 }
 
 static int
 kstat_seq_show_timer(struct seq_file *f, kstat_timer_t *ktp)
 {
-        seq_printf(f,
-                   "%-31s %-8llu %-8lld %-8lld %-8lld %-8lld %-8lld\n",
-                   ktp->name, ktp->num_events, ktp->elapsed_time,
-                   ktp->min_time, ktp->max_time,
-                   ktp->start_time, ktp->stop_time);
+       seq_printf(f,
+           "%-31s %-8llu %-8lld %-8lld %-8lld %-8lld %-8lld\n",
+           ktp->name, ktp->num_events, ktp->elapsed_time,
+           ktp->min_time, ktp->max_time,
+           ktp->start_time, ktp->stop_time);
 
-        return 0;
+       return (0);
 }
 
 static int
 kstat_seq_show(struct seq_file *f, void *p)
 {
-        kstat_t *ksp = (kstat_t *)f->private;
-        int rc = 0;
+       kstat_t *ksp = (kstat_t *)f->private;
+       int rc = 0;
 
-        ASSERT(ksp->ks_magic == KS_MAGIC);
+       ASSERT(ksp->ks_magic == KS_MAGIC);
 
        switch (ksp->ks_type) {
-                case KSTAT_TYPE_RAW:
+               case KSTAT_TYPE_RAW:
 restart:
-                        if (ksp->ks_raw_ops.data) {
-                                rc = ksp->ks_raw_ops.data(
+                       if (ksp->ks_raw_ops.data) {
+                               rc = ksp->ks_raw_ops.data(
                                    ksp->ks_raw_buf, ksp->ks_raw_bufsize, p);
                                if (rc == ENOMEM && !kstat_resize_raw(ksp))
                                        goto restart;
                                if (!rc)
-                                       seq_puts(f, ksp->ks_raw_buf);
-                        } else {
-                                ASSERT(ksp->ks_ndata == 1);
-                                rc = kstat_seq_show_raw(f, ksp->ks_data,
-                                                        ksp->ks_data_size);
-                        }
-                        break;
-                case KSTAT_TYPE_NAMED:
-                        rc = kstat_seq_show_named(f, (kstat_named_t *)p);
-                        break;
-                case KSTAT_TYPE_INTR:
-                        rc = kstat_seq_show_intr(f, (kstat_intr_t *)p);
-                        break;
-                case KSTAT_TYPE_IO:
-                        rc = kstat_seq_show_io(f, (kstat_io_t *)p);
-                        break;
-                case KSTAT_TYPE_TIMER:
-                        rc = kstat_seq_show_timer(f, (kstat_timer_t *)p);
-                        break;
-                default:
-                        PANIC("Undefined kstat type %d\n", ksp->ks_type);
-        }
-
-        return -rc;
+                                       seq_puts(f, ksp->ks_raw_buf);
+                       } else {
+                               ASSERT(ksp->ks_ndata == 1);
+                               rc = kstat_seq_show_raw(f, ksp->ks_data,
+                                   ksp->ks_data_size);
+                       }
+                       break;
+               case KSTAT_TYPE_NAMED:
+                       rc = kstat_seq_show_named(f, (kstat_named_t *)p);
+                       break;
+               case KSTAT_TYPE_INTR:
+                       rc = kstat_seq_show_intr(f, (kstat_intr_t *)p);
+                       break;
+               case KSTAT_TYPE_IO:
+                       rc = kstat_seq_show_io(f, (kstat_io_t *)p);
+                       break;
+               case KSTAT_TYPE_TIMER:
+                       rc = kstat_seq_show_timer(f, (kstat_timer_t *)p);
+                       break;
+               default:
+                       PANIC("Undefined kstat type %d\n", ksp->ks_type);
+       }
+
+       return (-rc);
 }
 
-int
+static int
 kstat_default_update(kstat_t *ksp, int rw)
 {
        ASSERT(ksp != NULL);
@@ -333,79 +335,79 @@ kstat_default_update(kstat_t *ksp, int rw)
        if (rw == KSTAT_WRITE)
                return (EACCES);
 
-       return 0;
+       return (0);
 }
 
 static void *
 kstat_seq_data_addr(kstat_t *ksp, loff_t n)
 {
-        void *rc = NULL;
+       void *rc = NULL;
 
        switch (ksp->ks_type) {
-                case KSTAT_TYPE_RAW:
-                        if (ksp->ks_raw_ops.addr)
-                                rc = ksp->ks_raw_ops.addr(ksp, n);
-                        else
-                                rc = ksp->ks_data;
-                        break;
-                case KSTAT_TYPE_NAMED:
-                        rc = ksp->ks_data + n * sizeof(kstat_named_t);
-                        break;
-                case KSTAT_TYPE_INTR:
-                        rc = ksp->ks_data + n * sizeof(kstat_intr_t);
-                        break;
-                case KSTAT_TYPE_IO:
-                        rc = ksp->ks_data + n * sizeof(kstat_io_t);
-                        break;
-                case KSTAT_TYPE_TIMER:
-                        rc = ksp->ks_data + n * sizeof(kstat_timer_t);
-                        break;
-                default:
-                        PANIC("Undefined kstat type %d\n", ksp->ks_type);
-        }
-
-        return (rc);
+               case KSTAT_TYPE_RAW:
+                       if (ksp->ks_raw_ops.addr)
+                               rc = ksp->ks_raw_ops.addr(ksp, n);
+                       else
+                               rc = ksp->ks_data;
+                       break;
+               case KSTAT_TYPE_NAMED:
+                       rc = ksp->ks_data + n * sizeof (kstat_named_t);
+                       break;
+               case KSTAT_TYPE_INTR:
+                       rc = ksp->ks_data + n * sizeof (kstat_intr_t);
+                       break;
+               case KSTAT_TYPE_IO:
+                       rc = ksp->ks_data + n * sizeof (kstat_io_t);
+                       break;
+               case KSTAT_TYPE_TIMER:
+                       rc = ksp->ks_data + n * sizeof (kstat_timer_t);
+                       break;
+               default:
+                       PANIC("Undefined kstat type %d\n", ksp->ks_type);
+       }
+
+       return (rc);
 }
 
 static void *
 kstat_seq_start(struct seq_file *f, loff_t *pos)
 {
-        loff_t n = *pos;
-        kstat_t *ksp = (kstat_t *)f->private;
-        ASSERT(ksp->ks_magic == KS_MAGIC);
+       loff_t n = *pos;
+       kstat_t *ksp = (kstat_t *)f->private;
+       ASSERT(ksp->ks_magic == KS_MAGIC);
 
        mutex_enter(ksp->ks_lock);
 
-        if (ksp->ks_type == KSTAT_TYPE_RAW) {
-                ksp->ks_raw_bufsize = PAGE_SIZE;
-                ksp->ks_raw_buf = vmem_alloc(ksp->ks_raw_bufsize, KM_SLEEP);
-        }
+       if (ksp->ks_type == KSTAT_TYPE_RAW) {
+               ksp->ks_raw_bufsize = PAGE_SIZE;
+               ksp->ks_raw_buf = vmem_alloc(ksp->ks_raw_bufsize, KM_SLEEP);
+       }
 
-        /* Dynamically update kstat, on error existing kstats are used */
-        (void) ksp->ks_update(ksp, KSTAT_READ);
+       /* Dynamically update kstat, on error existing kstats are used */
+       (void) ksp->ks_update(ksp, KSTAT_READ);
 
        ksp->ks_snaptime = gethrtime();
 
-        if (!n && kstat_seq_show_headers(f))
+       if (!n && kstat_seq_show_headers(f))
                return (NULL);
 
-        if (n >= ksp->ks_ndata)
-                return (NULL);
+       if (n >= ksp->ks_ndata)
+               return (NULL);
 
-        return (kstat_seq_data_addr(ksp, n));
+       return (kstat_seq_data_addr(ksp, n));
 }
 
 static void *
 kstat_seq_next(struct seq_file *f, void *p, loff_t *pos)
 {
-        kstat_t *ksp = (kstat_t *)f->private;
-        ASSERT(ksp->ks_magic == KS_MAGIC);
+       kstat_t *ksp = (kstat_t *)f->private;
+       ASSERT(ksp->ks_magic == KS_MAGIC);
 
-        ++*pos;
-        if (*pos >= ksp->ks_ndata)
-                return (NULL);
+       ++*pos;
+       if (*pos >= ksp->ks_ndata)
+               return (NULL);
 
-        return (kstat_seq_data_addr(ksp, *pos));
+       return (kstat_seq_data_addr(ksp, *pos));
 }
 
 static void
@@ -421,10 +423,10 @@ kstat_seq_stop(struct seq_file *f, void *v)
 }
 
 static struct seq_operations kstat_seq_ops = {
-        .show  = kstat_seq_show,
-        .start = kstat_seq_start,
-        .next  = kstat_seq_next,
-        .stop  = kstat_seq_stop,
+       .show  = kstat_seq_show,
+       .start = kstat_seq_start,
+       .next  = kstat_seq_next,
+       .stop  = kstat_seq_stop,
 };
 
 static kstat_module_t *
@@ -432,9 +434,10 @@ kstat_find_module(char *name)
 {
        kstat_module_t *module;
 
-       list_for_each_entry(module, &kstat_module_list, ksm_module_list)
+       list_for_each_entry(module, &kstat_module_list, ksm_module_list) {
                if (strncmp(name, module->ksm_name, KSTAT_STRLEN) == 0)
                        return (module);
+       }
 
        return (NULL);
 }
@@ -465,28 +468,28 @@ kstat_delete_module(kstat_module_t *module)
        ASSERT(list_empty(&module->ksm_kstat_list));
        remove_proc_entry(module->ksm_name, proc_spl_kstat);
        list_del(&module->ksm_module_list);
-       kmem_free(module, sizeof(kstat_module_t));
+       kmem_free(module, sizeof (kstat_module_t));
 }
 
 static int
 proc_kstat_open(struct inode *inode, struct file *filp)
 {
-        struct seq_file *f;
-        int rc;
+       struct seq_file *f;
+       int rc;
 
-        rc = seq_open(filp, &kstat_seq_ops);
-        if (rc)
-                return rc;
+       rc = seq_open(filp, &kstat_seq_ops);
+       if (rc)
+               return (rc);
 
-        f = filp->private_data;
-        f->private = PDE_DATA(inode);
+       f = filp->private_data;
+       f->private = PDE_DATA(inode);
 
-        return rc;
+       return (rc);
 }
 
 static ssize_t
-proc_kstat_write(struct file *filp, const char __user *buf,
-                size_t len, loff_t *ppos)
+proc_kstat_write(struct file *filp, const char __user *buf, size_t len,
+    loff_t *ppos)
 {
        struct seq_file *f = filp->private_data;
        kstat_t *ksp = f->private;
@@ -515,9 +518,9 @@ static struct file_operations proc_kstat_operations = {
 
 void
 __kstat_set_raw_ops(kstat_t *ksp,
-                   int (*headers)(char *buf, size_t size),
-                   int (*data)(char *buf, size_t size, void *data),
-                   void *(*addr)(kstat_t *ksp, loff_t index))
+    int (*headers)(char *buf, size_t size),
+    int (*data)(char *buf, size_t size, void *data),
+    void *(*addr)(kstat_t *ksp, loff_t index))
 {
        ksp->ks_raw_ops.headers = headers;
        ksp->ks_raw_ops.data    = data;
@@ -527,8 +530,8 @@ EXPORT_SYMBOL(__kstat_set_raw_ops);
 
 kstat_t *
 __kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
-             const char *ks_class, uchar_t ks_type, uint_t ks_ndata,
-             uchar_t ks_flags)
+    const char *ks_class, uchar_t ks_type, uint_t ks_ndata,
+    uchar_t ks_flags)
 {
        kstat_t *ksp;
 
@@ -538,24 +541,24 @@ __kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
        ASSERT(!(ks_flags & KSTAT_FLAG_UNSUPPORTED));
 
        if ((ks_type == KSTAT_TYPE_INTR) || (ks_type == KSTAT_TYPE_IO))
-                ASSERT(ks_ndata == 1);
+               ASSERT(ks_ndata == 1);
 
-       ksp = kmem_zalloc(sizeof(*ksp), KM_SLEEP);
+       ksp = kmem_zalloc(sizeof (*ksp), KM_SLEEP);
        if (ksp == NULL)
-               return ksp;
+               return (ksp);
 
        mutex_enter(&kstat_module_lock);
        ksp->ks_kid = kstat_id;
-        kstat_id++;
+       kstat_id++;
        mutex_exit(&kstat_module_lock);
 
-        ksp->ks_magic = KS_MAGIC;
+       ksp->ks_magic = KS_MAGIC;
        mutex_init(&ksp->ks_private_lock, NULL, MUTEX_DEFAULT, NULL);
        ksp->ks_lock = &ksp->ks_private_lock;
        INIT_LIST_HEAD(&ksp->ks_list);
 
        ksp->ks_crtime = gethrtime();
-        ksp->ks_snaptime = ksp->ks_crtime;
+       ksp->ks_snaptime = ksp->ks_crtime;
        strncpy(ksp->ks_module, ks_module, KSTAT_STRLEN);
        ksp->ks_instance = ks_instance;
        strncpy(ksp->ks_name, ks_name, KSTAT_STRLEN);
@@ -571,41 +574,41 @@ __kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
        ksp->ks_raw_bufsize = 0;
 
        switch (ksp->ks_type) {
-                case KSTAT_TYPE_RAW:
-                       ksp->ks_ndata = 1;
-                        ksp->ks_data_size = ks_ndata;
-                        break;
-                case KSTAT_TYPE_NAMED:
-                       ksp->ks_ndata = ks_ndata;
-                        ksp->ks_data_size = ks_ndata * sizeof(kstat_named_t);
-                        break;
-                case KSTAT_TYPE_INTR:
-                       ksp->ks_ndata = ks_ndata;
-                        ksp->ks_data_size = ks_ndata * sizeof(kstat_intr_t);
-                        break;
-                case KSTAT_TYPE_IO:
-                       ksp->ks_ndata = ks_ndata;
-                        ksp->ks_data_size = ks_ndata * sizeof(kstat_io_t);
-                        break;
-                case KSTAT_TYPE_TIMER:
-                       ksp->ks_ndata = ks_ndata;
-                        ksp->ks_data_size = ks_ndata * sizeof(kstat_timer_t);
-                        break;
-                default:
-                        PANIC("Undefined kstat type %d\n", ksp->ks_type);
-        }
+               case KSTAT_TYPE_RAW:
+                       ksp->ks_ndata = 1;
+                       ksp->ks_data_size = ks_ndata;
+                       break;
+               case KSTAT_TYPE_NAMED:
+                       ksp->ks_ndata = ks_ndata;
+                       ksp->ks_data_size = ks_ndata * sizeof (kstat_named_t);
+                       break;
+               case KSTAT_TYPE_INTR:
+                       ksp->ks_ndata = ks_ndata;
+                       ksp->ks_data_size = ks_ndata * sizeof (kstat_intr_t);
+                       break;
+               case KSTAT_TYPE_IO:
+                       ksp->ks_ndata = ks_ndata;
+                       ksp->ks_data_size = ks_ndata * sizeof (kstat_io_t);
+                       break;
+               case KSTAT_TYPE_TIMER:
+                       ksp->ks_ndata = ks_ndata;
+                       ksp->ks_data_size = ks_ndata * sizeof (kstat_timer_t);
+                       break;
+               default:
+                       PANIC("Undefined kstat type %d\n", ksp->ks_type);
+       }
 
        if (ksp->ks_flags & KSTAT_FLAG_VIRTUAL) {
-                ksp->ks_data = NULL;
-        } else {
-                ksp->ks_data = kmem_zalloc(ksp->ks_data_size, KM_SLEEP);
-                if (ksp->ks_data == NULL) {
-                        kmem_free(ksp, sizeof(*ksp));
-                        ksp = NULL;
-                }
-        }
-
-       return ksp;
+               ksp->ks_data = NULL;
+       } else {
+               ksp->ks_data = kmem_zalloc(ksp->ks_data_size, KM_SLEEP);
+               if (ksp->ks_data == NULL) {
+                       kmem_free(ksp, sizeof (*ksp));
+                       ksp = NULL;
+               }
+       }
+
+       return (ksp);
 }
 EXPORT_SYMBOL(__kstat_create);
 
@@ -614,21 +617,27 @@ kstat_detect_collision(kstat_t *ksp)
 {
        kstat_module_t *module;
        kstat_t *tmp;
-       char parent[KSTAT_STRLEN+1];
+       char *parent;
        char *cp;
 
-       (void) strlcpy(parent, ksp->ks_module, sizeof(parent));
+       parent = kmem_asprintf("%s", ksp->ks_module);
 
-       if ((cp = strrchr(parent, '/')) == NULL)
+       if ((cp = strrchr(parent, '/')) == NULL) {
+               strfree(parent);
                return (0);
+       }
 
        cp[0] = '\0';
        if ((module = kstat_find_module(parent)) != NULL) {
-               list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list)
-                       if (strncmp(tmp->ks_name, cp+1, KSTAT_STRLEN) == 0)
+               list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list) {
+                       if (strncmp(tmp->ks_name, cp+1, KSTAT_STRLEN) == 0) {
+                               strfree(parent);
                                return (EEXIST);
+                       }
+               }
        }
 
+       strfree(parent);
        return (0);
 }
 
@@ -658,9 +667,10 @@ __kstat_install(kstat_t *ksp)
         * Only one entry by this name per-module, on failure the module
         * shouldn't be deleted because we know it has at least one entry.
         */
-       list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list)
+       list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list) {
                if (strncmp(tmp->ks_name, ksp->ks_name, KSTAT_STRLEN) == 0)
                        goto out;
+       }
 
        list_add_tail(&ksp->ks_list, &module->ksm_kstat_list);
 
@@ -701,9 +711,7 @@ __kstat_delete(kstat_t *ksp)
 
        ksp->ks_lock = NULL;
        mutex_destroy(&ksp->ks_private_lock);
-       kmem_free(ksp, sizeof(*ksp));
-
-       return;
+       kmem_free(ksp, sizeof (*ksp));
 }
 EXPORT_SYMBOL(__kstat_delete);
 
@@ -712,7 +720,7 @@ spl_kstat_init(void)
 {
        mutex_init(&kstat_module_lock, NULL, MUTEX_DEFAULT, NULL);
        INIT_LIST_HEAD(&kstat_module_list);
-        kstat_id = 0;
+       kstat_id = 0;
        return (0);
 }
 
@@ -722,4 +730,3 @@ spl_kstat_fini(void)
        ASSERT(list_empty(&kstat_module_list));
        mutex_destroy(&kstat_module_lock);
 }
-
index a29d488d13b77fbb98e042acd34644b2b3f967a4..dfb26bff23c6b8e1966fb7389a3cc5987b30defb 100644 (file)
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Mutex Implementation.
 \*****************************************************************************/
 
 #include <sys/mutex.h>
 
-#ifdef DEBUG_SUBSYSTEM
-#undef DEBUG_SUBSYSTEM
-#endif
-
-#define DEBUG_SUBSYSTEM S_MUTEX
-
 int spl_mutex_init(void) { return 0; }
 void spl_mutex_fini(void) { }
index 05c1a5dbc2209b577928f4b9838eb0795ccd8685..8ce5bbeb4bea43c7c8f60c4c7d9bc756a5fa00bb 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Proc Implementation.
 \*****************************************************************************/
 
@@ -37,7 +37,7 @@
 #include <linux/uaccess.h>
 #include <linux/version.h>
 
-#if defined(CONSTIFY_PLUGIN) && LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
+#if defined(CONSTIFY_PLUGIN) && LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
 typedef struct ctl_table __no_const spl_ctl_table;
 #else
 typedef struct ctl_table spl_ctl_table;
@@ -55,56 +55,57 @@ static struct proc_dir_entry *proc_spl_taskq = NULL;
 struct proc_dir_entry *proc_spl_kstat = NULL;
 
 static int
-proc_copyin_string(char *kbuffer, int kbuffer_size,
-                   const char *ubuffer, int ubuffer_size)
+proc_copyin_string(char *kbuffer, int kbuffer_size, const char *ubuffer,
+    int ubuffer_size)
 {
-        int size;
+       int size;
 
-        if (ubuffer_size > kbuffer_size)
-                return -EOVERFLOW;
+       if (ubuffer_size > kbuffer_size)
+               return (-EOVERFLOW);
 
-        if (copy_from_user((void *)kbuffer, (void *)ubuffer, ubuffer_size))
-                return -EFAULT;
+       if (copy_from_user((void *)kbuffer, (void *)ubuffer, ubuffer_size))
+               return (-EFAULT);
 
-        /* strip trailing whitespace */
-        size = strnlen(kbuffer, ubuffer_size);
-        while (size-- >= 0)
-                if (!isspace(kbuffer[size]))
-                        break;
+       /* strip trailing whitespace */
+       size = strnlen(kbuffer, ubuffer_size);
+       while (size-- >= 0)
+               if (!isspace(kbuffer[size]))
+                       break;
 
-        /* empty string */
-        if (size < 0)
-                return -EINVAL;
+       /* empty string */
+       if (size < 0)
+               return (-EINVAL);
 
-        /* no space to terminate */
-        if (size == kbuffer_size)
-                return -EOVERFLOW;
+       /* no space to terminate */
+       if (size == kbuffer_size)
+               return (-EOVERFLOW);
 
-        kbuffer[size + 1] = 0;
-        return 0;
+       kbuffer[size + 1] = 0;
+       return (0);
 }
 
 static int
-proc_copyout_string(char *ubuffer, int ubuffer_size,
-                    const char *kbuffer, char *append)
+proc_copyout_string(char *ubuffer, int ubuffer_size, const char *kbuffer,
+    char *append)
 {
-        /* NB if 'append' != NULL, it's a single character to append to the
-         * copied out string - usually "\n", for /proc entries and
-         * (i.e. a terminating zero byte) for sysctl entries
-         */
-        int size = MIN(strlen(kbuffer), ubuffer_size);
+       /*
+        * NB if 'append' != NULL, it's a single character to append to the
+        * copied out string - usually "\n", for /proc entries and
+        * (i.e. a terminating zero byte) for sysctl entries
+        */
+       int size = MIN(strlen(kbuffer), ubuffer_size);
 
-        if (copy_to_user(ubuffer, kbuffer, size))
-                return -EFAULT;
+       if (copy_to_user(ubuffer, kbuffer, size))
+               return (-EFAULT);
 
-        if (append != NULL && size < ubuffer_size) {
-                if (copy_to_user(ubuffer + size, append, 1))
-                        return -EFAULT;
+       if (append != NULL && size < ubuffer_size) {
+               if (copy_to_user(ubuffer + size, append, 1))
+                       return (-EFAULT);
 
-                size++;
-        }
+               size++;
+       }
 
-        return size;
+       return (size);
 }
 
 #ifdef DEBUG_KMEM
@@ -112,27 +113,27 @@ static int
 proc_domemused(struct ctl_table *table, int write,
     void __user *buffer, size_t *lenp, loff_t *ppos)
 {
-        int rc = 0;
-        unsigned long min = 0, max = ~0, val;
-        spl_ctl_table dummy = *table;
-
-        dummy.data = &val;
-        dummy.proc_handler = &proc_dointvec;
-        dummy.extra1 = &min;
-        dummy.extra2 = &max;
-
-        if (write) {
-                *ppos += *lenp;
-        } else {
-# ifdef HAVE_ATOMIC64_T
-                val = atomic64_read((atomic64_t *)table->data);
-# else
-                val = atomic_read((atomic_t *)table->data);
-# endif /* HAVE_ATOMIC64_T */
-                rc = proc_doulongvec_minmax(&dummy, write, buffer, lenp, ppos);
-        }
-
-        return (rc);
+       int rc = 0;
+       unsigned long min = 0, max = ~0, val;
+       spl_ctl_table dummy = *table;
+
+       dummy.data = &val;
+       dummy.proc_handler = &proc_dointvec;
+       dummy.extra1 = &min;
+       dummy.extra2 = &max;
+
+       if (write) {
+               *ppos += *lenp;
+       } else {
+#ifdef HAVE_ATOMIC64_T
+               val = atomic64_read((atomic64_t *)table->data);
+#else
+               val = atomic_read((atomic_t *)table->data);
+#endif /* HAVE_ATOMIC64_T */
+               rc = proc_doulongvec_minmax(&dummy, write, buffer, lenp, ppos);
+       }
+
+       return (rc);
 }
 #endif /* DEBUG_KMEM */
 
@@ -140,23 +141,23 @@ static int
 proc_doslab(struct ctl_table *table, int write,
     void __user *buffer, size_t *lenp, loff_t *ppos)
 {
-        int rc = 0;
-        unsigned long min = 0, max = ~0, val = 0, mask;
-        spl_ctl_table dummy = *table;
-        spl_kmem_cache_t *skc;
+       int rc = 0;
+       unsigned long min = 0, max = ~0, val = 0, mask;
+       spl_ctl_table dummy = *table;
+       spl_kmem_cache_t *skc;
 
-        dummy.data = &val;
-        dummy.proc_handler = &proc_dointvec;
-        dummy.extra1 = &min;
-        dummy.extra2 = &max;
+       dummy.data = &val;
+       dummy.proc_handler = &proc_dointvec;
+       dummy.extra1 = &min;
+       dummy.extra2 = &max;
 
-        if (write) {
-                *ppos += *lenp;
-        } else {
-                down_read(&spl_kmem_cache_sem);
-                mask = (unsigned long)table->data;
+       if (write) {
+               *ppos += *lenp;
+       } else {
+               down_read(&spl_kmem_cache_sem);
+               mask = (unsigned long)table->data;
 
-                list_for_each_entry(skc, &spl_kmem_cache_list, skc_list) {
+               list_for_each_entry(skc, &spl_kmem_cache_list, skc_list) {
 
                        /* Only use slabs of the correct kmem/vmem type */
                        if (!(skc->skc_flags & mask))
@@ -165,58 +166,61 @@ proc_doslab(struct ctl_table *table, int write,
                        /* Sum the specified field for selected slabs */
                        switch (mask & (KMC_TOTAL | KMC_ALLOC | KMC_MAX)) {
                        case KMC_TOTAL:
-                               val += skc->skc_slab_size * skc->skc_slab_total;
+                               val += skc->skc_slab_size * skc->skc_slab_total;
                                break;
                        case KMC_ALLOC:
-                               val += skc->skc_obj_size * skc->skc_obj_alloc;
+                               val += skc->skc_obj_size * skc->skc_obj_alloc;
                                break;
                        case KMC_MAX:
-                               val += skc->skc_obj_size * skc->skc_obj_max;
+                               val += skc->skc_obj_size * skc->skc_obj_max;
                                break;
                        }
-                }
+               }
 
-                up_read(&spl_kmem_cache_sem);
-                rc = proc_doulongvec_minmax(&dummy, write, buffer, lenp, ppos);
-        }
+               up_read(&spl_kmem_cache_sem);
+               rc = proc_doulongvec_minmax(&dummy, write, buffer, lenp, ppos);
+       }
 
-        return (rc);
+       return (rc);
 }
 
 static int
 proc_dohostid(struct ctl_table *table, int write,
     void __user *buffer, size_t *lenp, loff_t *ppos)
 {
-        int len, rc = 0;
-        char *end, str[32];
-
-        if (write) {
-                /* We can't use proc_doulongvec_minmax() in the write
-                 * case here because hostid while a hex value has no
-                 * leading 0x which confuses the helper function. */
-                rc = proc_copyin_string(str, sizeof(str), buffer, *lenp);
-                if (rc < 0)
-                        return (rc);
-
-                spl_hostid = simple_strtoul(str, &end, 16);
-                if (str == end)
-                        return (-EINVAL);
-
-        } else {
-                len = snprintf(str, sizeof(str), "%lx",
+       int len, rc = 0;
+       char *end, str[32];
+
+       if (write) {
+               /*
+                * We can't use proc_doulongvec_minmax() in the write
+                * case here because hostid while a hex value has no
+                * leading 0x which confuses the helper function.
+                */
+               rc = proc_copyin_string(str, sizeof (str), buffer, *lenp);
+               if (rc < 0)
+                       return (rc);
+
+               spl_hostid = simple_strtoul(str, &end, 16);
+               if (str == end)
+                       return (-EINVAL);
+
+       } else {
+               len = snprintf(str, sizeof (str), "%lx",
                    (unsigned long) zone_get_hostid(NULL));
-                if (*ppos >= len)
-                        rc = 0;
-                else
-                        rc = proc_copyout_string(buffer,*lenp,str+*ppos,"\n");
-
-                if (rc >= 0) {
-                        *lenp = rc;
-                        *ppos += rc;
-                }
-        }
-
-        return (rc);
+               if (*ppos >= len)
+                       rc = 0;
+               else
+                       rc = proc_copyout_string(buffer,
+                           *lenp, str + *ppos, "\n");
+
+               if (rc >= 0) {
+                       *lenp = rc;
+                       *ppos += rc;
+               }
+       }
+
+       return (rc);
 }
 
 static void
@@ -229,15 +233,17 @@ taskq_seq_show_headers(struct seq_file *f)
 
 /* indices into the lheads array below */
 #define        LHEAD_PEND      0
-#define LHEAD_PRIO     1
-#define LHEAD_DELAY    2
-#define LHEAD_WAIT     3
-#define LHEAD_ACTIVE   4
-#define LHEAD_SIZE     5
+#define        LHEAD_PRIO      1
+#define        LHEAD_DELAY     2
+#define        LHEAD_WAIT      3
+#define        LHEAD_ACTIVE    4
+#define        LHEAD_SIZE      5
 
+/* BEGIN CSTYLED */
 static unsigned int spl_max_show_tasks = 512;
 module_param(spl_max_show_tasks, uint, 0644);
 MODULE_PARM_DESC(spl_max_show_tasks, "Max number of tasks shown in taskq proc");
+/* END CSTYLED */
 
 static int
 taskq_seq_show_impl(struct seq_file *f, void *p, boolean_t allflag)
@@ -287,7 +293,7 @@ taskq_seq_show_impl(struct seq_file *f, void *p, boolean_t allflag)
                spin_unlock_irqrestore(&tq->tq_wait_waitq.lock, wflags);
 
        /* show the base taskq contents */
-       snprintf(name, sizeof(name), "%s/%d", tq->tq_name, tq->tq_instance);
+       snprintf(name, sizeof (name), "%s/%d", tq->tq_name, tq->tq_instance);
        seq_printf(f, "%-25s ", name);
        seq_printf(f, "%5d %5d %5d %5d %5d %5d %12d %5d %10x\n",
            tq->tq_nactive, tq->tq_nthreads, tq->tq_nspawn,
@@ -299,7 +305,8 @@ taskq_seq_show_impl(struct seq_file *f, void *p, boolean_t allflag)
                j = 0;
                list_for_each_entry(tqt, &tq->tq_active_list, tqt_active_list) {
                        if (j == 0)
-                               seq_printf(f, "\t%s:", list_names[LHEAD_ACTIVE]);
+                               seq_printf(f, "\t%s:",
+                                   list_names[LHEAD_ACTIVE]);
                        else if (j == 2) {
                                seq_printf(f, "\n\t       ");
                                j = 0;
@@ -403,32 +410,32 @@ taskq_seq_next(struct seq_file *f, void *p, loff_t *pos)
 
        ++*pos;
        return ((tq->tq_taskqs.next == &tq_list) ?
-              NULL : list_entry(tq->tq_taskqs.next, taskq_t, tq_taskqs));
+           NULL : list_entry(tq->tq_taskqs.next, taskq_t, tq_taskqs));
 }
 
 static void
 slab_seq_show_headers(struct seq_file *f)
 {
-        seq_printf(f,
-            "--------------------- cache ----------"
-            "---------------------------------------------  "
-            "----- slab ------  "
-            "---- object -----  "
-            "--- emergency ---\n");
-        seq_printf(f,
-            "name                                  "
-            "  flags      size     alloc slabsize  objsize  "
-            "total alloc   max  "
-            "total alloc   max  "
-            "dlock alloc   max\n");
+       seq_printf(f,
+           "--------------------- cache ----------"
+           "---------------------------------------------  "
+           "----- slab ------  "
+           "---- object -----  "
+           "--- emergency ---\n");
+       seq_printf(f,
+           "name                                  "
+           "  flags      size     alloc slabsize  objsize  "
+           "total alloc   max  "
+           "total alloc   max  "
+           "dlock alloc   max\n");
 }
 
 static int
 slab_seq_show(struct seq_file *f, void *p)
 {
-        spl_kmem_cache_t *skc = p;
+       spl_kmem_cache_t *skc = p;
 
-        ASSERT(skc->skc_magic == SKC_MAGIC);
+       ASSERT(skc->skc_magic == SKC_MAGIC);
 
        /*
         * Backed by Linux slab see /proc/slabinfo.
@@ -436,48 +443,48 @@ slab_seq_show(struct seq_file *f, void *p)
        if (skc->skc_flags & KMC_SLAB)
                return (0);
 
-        spin_lock(&skc->skc_lock);
-        seq_printf(f, "%-36s  ", skc->skc_name);
-        seq_printf(f, "0x%05lx %9lu %9lu %8u %8u  "
-            "%5lu %5lu %5lu  %5lu %5lu %5lu  %5lu %5lu %5lu\n",
-            (long unsigned)skc->skc_flags,
-            (long unsigned)(skc->skc_slab_size * skc->skc_slab_total),
-            (long unsigned)(skc->skc_obj_size * skc->skc_obj_alloc),
-            (unsigned)skc->skc_slab_size,
-            (unsigned)skc->skc_obj_size,
-            (long unsigned)skc->skc_slab_total,
-            (long unsigned)skc->skc_slab_alloc,
-            (long unsigned)skc->skc_slab_max,
-            (long unsigned)skc->skc_obj_total,
-            (long unsigned)skc->skc_obj_alloc,
-            (long unsigned)skc->skc_obj_max,
-            (long unsigned)skc->skc_obj_deadlock,
-            (long unsigned)skc->skc_obj_emergency,
-            (long unsigned)skc->skc_obj_emergency_max);
-
-        spin_unlock(&skc->skc_lock);
-
-        return 0;
+       spin_lock(&skc->skc_lock);
+       seq_printf(f, "%-36s  ", skc->skc_name);
+       seq_printf(f, "0x%05lx %9lu %9lu %8u %8u  "
+           "%5lu %5lu %5lu  %5lu %5lu %5lu  %5lu %5lu %5lu\n",
+           (long unsigned)skc->skc_flags,
+           (long unsigned)(skc->skc_slab_size * skc->skc_slab_total),
+           (long unsigned)(skc->skc_obj_size * skc->skc_obj_alloc),
+           (unsigned)skc->skc_slab_size,
+           (unsigned)skc->skc_obj_size,
+           (long unsigned)skc->skc_slab_total,
+           (long unsigned)skc->skc_slab_alloc,
+           (long unsigned)skc->skc_slab_max,
+           (long unsigned)skc->skc_obj_total,
+           (long unsigned)skc->skc_obj_alloc,
+           (long unsigned)skc->skc_obj_max,
+           (long unsigned)skc->skc_obj_deadlock,
+           (long unsigned)skc->skc_obj_emergency,
+           (long unsigned)skc->skc_obj_emergency_max);
+
+       spin_unlock(&skc->skc_lock);
+
+       return (0);
 }
 
 static void *
 slab_seq_start(struct seq_file *f, loff_t *pos)
 {
-        struct list_head *p;
-        loff_t n = *pos;
+       struct list_head *p;
+       loff_t n = *pos;
 
        down_read(&spl_kmem_cache_sem);
-        if (!n)
-                slab_seq_show_headers(f);
+       if (!n)
+               slab_seq_show_headers(f);
 
-        p = spl_kmem_cache_list.next;
-        while (n--) {
-                p = p->next;
-                if (p == &spl_kmem_cache_list)
-                        return (NULL);
-        }
+       p = spl_kmem_cache_list.next;
+       while (n--) {
+               p = p->next;
+               if (p == &spl_kmem_cache_list)
+                       return (NULL);
+       }
 
-        return (list_entry(p, spl_kmem_cache_t, skc_list));
+       return (list_entry(p, spl_kmem_cache_t, skc_list));
 }
 
 static void *
@@ -485,9 +492,9 @@ slab_seq_next(struct seq_file *f, void *p, loff_t *pos)
 {
        spl_kmem_cache_t *skc = p;
 
-        ++*pos;
-        return ((skc->skc_list.next == &spl_kmem_cache_list) ?
-              NULL : list_entry(skc->skc_list.next,spl_kmem_cache_t,skc_list));
+       ++*pos;
+       return ((skc->skc_list.next == &spl_kmem_cache_list) ?
+           NULL : list_entry(skc->skc_list.next, spl_kmem_cache_t, skc_list));
 }
 
 static void
@@ -497,23 +504,23 @@ slab_seq_stop(struct seq_file *f, void *v)
 }
 
 static struct seq_operations slab_seq_ops = {
-        .show  = slab_seq_show,
-        .start = slab_seq_start,
-        .next  = slab_seq_next,
-        .stop  = slab_seq_stop,
+       .show  = slab_seq_show,
+       .start = slab_seq_start,
+       .next  = slab_seq_next,
+       .stop  = slab_seq_stop,
 };
 
 static int
 proc_slab_open(struct inode *inode, struct file *filp)
 {
-        return seq_open(filp, &slab_seq_ops);
+       return (seq_open(filp, &slab_seq_ops));
 }
 
 static struct file_operations proc_slab_operations = {
-        .open           = proc_slab_open,
-        .read           = seq_read,
-        .llseek         = seq_lseek,
-        .release        = seq_release,
+       .open      = proc_slab_open,
+       .read      = seq_read,
+       .llseek  = seq_lseek,
+       .release        = seq_release,
 };
 
 static void
@@ -523,122 +530,122 @@ taskq_seq_stop(struct seq_file *f, void *v)
 }
 
 static struct seq_operations taskq_all_seq_ops = {
-       .show  = taskq_all_seq_show,
-       .start = taskq_seq_start,
-       .next  = taskq_seq_next,
-       .stop  = taskq_seq_stop,
+       .show   = taskq_all_seq_show,
+       .start  = taskq_seq_start,
+       .next   = taskq_seq_next,
+       .stop   = taskq_seq_stop,
 };
 
 static struct seq_operations taskq_seq_ops = {
-       .show  = taskq_seq_show,
-       .start = taskq_seq_start,
-       .next  = taskq_seq_next,
-       .stop  = taskq_seq_stop,
+       .show   = taskq_seq_show,
+       .start  = taskq_seq_start,
+       .next   = taskq_seq_next,
+       .stop   = taskq_seq_stop,
 };
 
 static int
 proc_taskq_all_open(struct inode *inode, struct file *filp)
 {
-       return seq_open(filp, &taskq_all_seq_ops);
+       return (seq_open(filp, &taskq_all_seq_ops));
 }
 
 static int
 proc_taskq_open(struct inode *inode, struct file *filp)
 {
-       return seq_open(filp, &taskq_seq_ops);
+       return (seq_open(filp, &taskq_seq_ops));
 }
 
 static struct file_operations proc_taskq_all_operations = {
-       .open           = proc_taskq_all_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = seq_release,
+       .open           = proc_taskq_all_open,
+       .read           = seq_read,
+       .llseek         = seq_lseek,
+       .release        = seq_release,
 };
 
 static struct file_operations proc_taskq_operations = {
-       .open           = proc_taskq_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = seq_release,
+       .open           = proc_taskq_open,
+       .read           = seq_read,
+       .llseek         = seq_lseek,
+       .release        = seq_release,
 };
 
 static struct ctl_table spl_kmem_table[] = {
 #ifdef DEBUG_KMEM
-        {
-                .procname = "kmem_used",
-                .data     = &kmem_alloc_used,
-# ifdef HAVE_ATOMIC64_T
-                .maxlen   = sizeof(atomic64_t),
-# else
-                .maxlen   = sizeof(atomic_t),
-# endif /* HAVE_ATOMIC64_T */
-                .mode     = 0444,
-                .proc_handler = &proc_domemused,
-        },
-        {
-                .procname = "kmem_max",
-                .data     = &kmem_alloc_max,
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doulongvec_minmax,
-        },
+       {
+               .procname       = "kmem_used",
+               .data           = &kmem_alloc_used,
+#ifdef HAVE_ATOMIC64_T
+               .maxlen         = sizeof (atomic64_t),
+#else
+               .maxlen         = sizeof (atomic_t),
+#endif /* HAVE_ATOMIC64_T */
+               .mode           = 0444,
+               .proc_handler   = &proc_domemused,
+       },
+       {
+               .procname       = "kmem_max",
+               .data           = &kmem_alloc_max,
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doulongvec_minmax,
+       },
 #endif /* DEBUG_KMEM */
-        {
-                .procname = "slab_kmem_total",
-               .data     = (void *)(KMC_KMEM | KMC_TOTAL),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
-        {
-                .procname = "slab_kmem_alloc",
-               .data     = (void *)(KMC_KMEM | KMC_ALLOC),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
-        {
-                .procname = "slab_kmem_max",
-               .data     = (void *)(KMC_KMEM | KMC_MAX),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
-        {
-                .procname = "slab_vmem_total",
-               .data     = (void *)(KMC_VMEM | KMC_TOTAL),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
-        {
-                .procname = "slab_vmem_alloc",
-               .data     = (void *)(KMC_VMEM | KMC_ALLOC),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
-        {
-                .procname = "slab_vmem_max",
-               .data     = (void *)(KMC_VMEM | KMC_MAX),
-                .maxlen   = sizeof(unsigned long),
-                .extra1   = &table_min,
-                .extra2   = &table_max,
-                .mode     = 0444,
-                .proc_handler = &proc_doslab,
-        },
+       {
+               .procname       = "slab_kmem_total",
+               .data           = (void *)(KMC_KMEM | KMC_TOTAL),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler = &proc_doslab,
+       },
+       {
+               .procname       = "slab_kmem_alloc",
+               .data           = (void *)(KMC_KMEM | KMC_ALLOC),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doslab,
+       },
+       {
+               .procname       = "slab_kmem_max",
+               .data           = (void *)(KMC_KMEM | KMC_MAX),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doslab,
+       },
+       {
+               .procname       = "slab_vmem_total",
+               .data           = (void *)(KMC_VMEM | KMC_TOTAL),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doslab,
+       },
+       {
+               .procname       = "slab_vmem_alloc",
+               .data           = (void *)(KMC_VMEM | KMC_ALLOC),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doslab,
+       },
+       {
+               .procname       = "slab_vmem_max",
+               .data           = (void *)(KMC_VMEM | KMC_MAX),
+               .maxlen         = sizeof (unsigned long),
+               .extra1         = &table_min,
+               .extra2         = &table_max,
+               .mode           = 0444,
+               .proc_handler   = &proc_doslab,
+       },
        {},
 };
 
@@ -647,43 +654,44 @@ static struct ctl_table spl_kstat_table[] = {
 };
 
 static struct ctl_table spl_table[] = {
-        /* NB No .strategy entries have been provided since
-         * sysctl(8) prefers to go via /proc for portability.
-         */
-        {
-                .procname = "version",
-                .data     = spl_version,
-                .maxlen   = sizeof(spl_version),
-                .mode     = 0444,
-                .proc_handler = &proc_dostring,
-        },
-        {
-                .procname = "hostid",
-                .data     = &spl_hostid,
-                .maxlen   = sizeof(unsigned long),
-                .mode     = 0644,
-                .proc_handler = &proc_dohostid,
-        },
+       /*
+        * NB No .strategy entries have been provided since
+        * sysctl(8) prefers to go via /proc for portability.
+        */
+       {
+               .procname       = "version",
+               .data           = spl_version,
+               .maxlen         = sizeof (spl_version),
+               .mode           = 0444,
+               .proc_handler   = &proc_dostring,
+       },
+       {
+               .procname       = "hostid",
+               .data           = &spl_hostid,
+               .maxlen         = sizeof (unsigned long),
+               .mode           = 0644,
+               .proc_handler   = &proc_dohostid,
+       },
        {
-               .procname = "kmem",
-               .mode     = 0555,
-               .child    = spl_kmem_table,
+               .procname       = "kmem",
+               .mode           = 0555,
+               .child          = spl_kmem_table,
        },
        {
-               .procname = "kstat",
-               .mode     = 0555,
-               .child    = spl_kstat_table,
+               .procname       = "kstat",
+               .mode           = 0555,
+               .child          = spl_kstat_table,
        },
-        {},
+       {},
 };
 
 static struct ctl_table spl_dir[] = {
-        {
-                .procname = "spl",
-                .mode     = 0555,
-                .child    = spl_table,
-        },
-        {}
+       {
+               .procname       = "spl",
+               .mode           = 0555,
+               .child          = spl_table,
+       },
+       {}
 };
 
 static struct ctl_table spl_root[] = {
@@ -703,7 +711,7 @@ spl_proc_init(void)
 {
        int rc = 0;
 
-        spl_header = register_sysctl_table(spl_root);
+       spl_header = register_sysctl_table(spl_root);
        if (spl_header == NULL)
                return (-EUNATCH);
 
@@ -713,62 +721,62 @@ spl_proc_init(void)
                goto out;
        }
 
-       proc_spl_taskq_all = proc_create_data("taskq-all", 0444,
-               proc_spl, &proc_taskq_all_operations, NULL);
+       proc_spl_taskq_all = proc_create_data("taskq-all", 0444, proc_spl,
+           &proc_taskq_all_operations, NULL);
        if (proc_spl_taskq_all == NULL) {
                rc = -EUNATCH;
                goto out;
        }
 
-       proc_spl_taskq = proc_create_data("taskq", 0444,
-               proc_spl, &proc_taskq_operations, NULL);
+       proc_spl_taskq = proc_create_data("taskq", 0444, proc_spl,
+           &proc_taskq_operations, NULL);
        if (proc_spl_taskq == NULL) {
                rc = -EUNATCH;
                goto out;
        }
 
-        proc_spl_kmem = proc_mkdir("kmem", proc_spl);
-        if (proc_spl_kmem == NULL) {
-                rc = -EUNATCH;
+       proc_spl_kmem = proc_mkdir("kmem", proc_spl);
+       if (proc_spl_kmem == NULL) {
+               rc = -EUNATCH;
                goto out;
        }
 
-       proc_spl_kmem_slab = proc_create_data("slab", 0444,
-               proc_spl_kmem, &proc_slab_operations, NULL);
-        if (proc_spl_kmem_slab == NULL) {
+       proc_spl_kmem_slab = proc_create_data("slab", 0444, proc_spl_kmem,
+           &proc_slab_operations, NULL);
+       if (proc_spl_kmem_slab == NULL) {
                rc = -EUNATCH;
                goto out;
        }
 
-        proc_spl_kstat = proc_mkdir("kstat", proc_spl);
-        if (proc_spl_kstat == NULL) {
-                rc = -EUNATCH;
+       proc_spl_kstat = proc_mkdir("kstat", proc_spl);
+       if (proc_spl_kstat == NULL) {
+               rc = -EUNATCH;
                goto out;
        }
 out:
        if (rc) {
                remove_proc_entry("kstat", proc_spl);
-               remove_proc_entry("slab", proc_spl_kmem);
+               remove_proc_entry("slab", proc_spl_kmem);
                remove_proc_entry("kmem", proc_spl);
                remove_proc_entry("taskq-all", proc_spl);
                remove_proc_entry("taskq", proc_spl);
                remove_proc_entry("spl", NULL);
-               unregister_sysctl_table(spl_header);
+               unregister_sysctl_table(spl_header);
        }
 
-        return (rc);
+       return (rc);
 }
 
 void
 spl_proc_fini(void)
 {
        remove_proc_entry("kstat", proc_spl);
-        remove_proc_entry("slab", proc_spl_kmem);
+       remove_proc_entry("slab", proc_spl_kmem);
        remove_proc_entry("kmem", proc_spl);
        remove_proc_entry("taskq-all", proc_spl);
        remove_proc_entry("taskq", proc_spl);
        remove_proc_entry("spl", NULL);
 
-        ASSERT(spl_header != NULL);
-        unregister_sysctl_table(spl_header);
+       ASSERT(spl_header != NULL);
+       unregister_sysctl_table(spl_header);
 }
index d99ef4f922d5372289e1af757c7a382f6d5486ea..bf7ee2f837f12d935ff9a6f913d2a025569aea68 100644 (file)
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Reader/Writer Lock Implementation.
 \*****************************************************************************/
 
 #include <sys/rwlock.h>
 
-#ifdef DEBUG_SUBSYSTEM
-#undef DEBUG_SUBSYSTEM
-#endif
-
-#define DEBUG_SUBSYSTEM S_RWLOCK
-
 #if defined(CONFIG_PREEMPT_RT_FULL)
 
 #include <linux/rtmutex.h>
@@ -94,7 +88,7 @@ __rwsem_tryupgrade(struct rw_semaphore *rwsem)
 static int
 __rwsem_tryupgrade(struct rw_semaphore *rwsem)
 {
-       typeof (rwsem->count) val;
+       typeof(rwsem->count) val;
        val = cmpxchg(&rwsem->count, SPL_RWSEM_SINGLE_READER_VALUE,
            SPL_RWSEM_SINGLE_WRITER_VALUE);
        return (val == SPL_RWSEM_SINGLE_READER_VALUE);
index 89c53a5dd8a97cb83a181e900328d2319b4ac32f..2919a942a1c768d2aed39937f20f1fd229e0a3d6 100644 (file)
@@ -87,7 +87,7 @@ taskq_find_by_name(const char *name)
        list_for_each_prev(tql, &tq_list) {
                tq = list_entry(tql, taskq_t, tq_taskqs);
                if (strcmp(name, tq->tq_name) == 0)
-                       return tq->tq_instance;
+                       return (tq->tq_instance);
        }
        return (-1);
 }
@@ -103,7 +103,6 @@ task_alloc(taskq_t *tq, uint_t flags, unsigned long *irqflags)
        int count = 0;
 
        ASSERT(tq);
-       ASSERT(spin_is_locked(&tq->tq_lock));
 retry:
        /* Acquire taskq_ent_t's from free list if available */
        if (!list_empty(&tq->tq_free_list) && !(flags & TQ_NEW)) {
@@ -168,7 +167,6 @@ task_free(taskq_t *tq, taskq_ent_t *t)
 {
        ASSERT(tq);
        ASSERT(t);
-       ASSERT(spin_is_locked(&tq->tq_lock));
        ASSERT(list_empty(&t->tqent_list));
        ASSERT(!timer_pending(&t->tqent_timer));
 
@@ -185,7 +183,6 @@ task_done(taskq_t *tq, taskq_ent_t *t)
 {
        ASSERT(tq);
        ASSERT(t);
-       ASSERT(spin_is_locked(&tq->tq_lock));
 
        /* Wake tasks blocked in taskq_wait_id() */
        wake_up_all(&t->tqent_waitq);
@@ -274,7 +271,6 @@ taskq_lowest_id(taskq_t *tq)
        taskq_thread_t *tqt;
 
        ASSERT(tq);
-       ASSERT(spin_is_locked(&tq->tq_lock));
 
        if (!list_empty(&tq->tq_pend_list)) {
                t = list_entry(tq->tq_pend_list.next, taskq_ent_t, tqent_list);
@@ -312,7 +308,6 @@ taskq_insert_in_order(taskq_t *tq, taskq_thread_t *tqt)
 
        ASSERT(tq);
        ASSERT(tqt);
-       ASSERT(spin_is_locked(&tq->tq_lock));
 
        list_for_each_prev(l, &tq->tq_active_list) {
                w = list_entry(l, taskq_thread_t, tqt_active_list);
@@ -335,8 +330,6 @@ taskq_find_list(taskq_t *tq, struct list_head *lh, taskqid_t id)
        struct list_head *l;
        taskq_ent_t *t;
 
-       ASSERT(spin_is_locked(&tq->tq_lock));
-
        list_for_each(l, lh) {
                t = list_entry(l, taskq_ent_t, tqent_list);
 
@@ -363,8 +356,6 @@ taskq_find(taskq_t *tq, taskqid_t id)
        struct list_head *l;
        taskq_ent_t *t;
 
-       ASSERT(spin_is_locked(&tq->tq_lock));
-
        t = taskq_find_list(tq, &tq->tq_delay_list, id);
        if (t)
                return (t);
@@ -582,7 +573,8 @@ taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t flags)
        ASSERT(tq->tq_nactive <= tq->tq_nthreads);
        if ((flags & TQ_NOQUEUE) && (tq->tq_nactive == tq->tq_nthreads)) {
                /* Dynamic taskq may be able to spawn another thread */
-               if (!(tq->tq_flags & TASKQ_DYNAMIC) || taskq_thread_spawn(tq) == 0)
+               if (!(tq->tq_flags & TASKQ_DYNAMIC) ||
+                   taskq_thread_spawn(tq) == 0)
                        goto out;
        }
 
@@ -695,7 +687,8 @@ taskq_dispatch_ent(taskq_t *tq, task_func_t func, void *arg, uint_t flags,
 
        if ((flags & TQ_NOQUEUE) && (tq->tq_nactive == tq->tq_nthreads)) {
                /* Dynamic taskq may be able to spawn another thread */
-               if (!(tq->tq_flags & TASKQ_DYNAMIC) || taskq_thread_spawn(tq) == 0)
+               if (!(tq->tq_flags & TASKQ_DYNAMIC) ||
+                   taskq_thread_spawn(tq) == 0)
                        goto out2;
                flags |= TQ_FRONT;
        }
@@ -774,8 +767,6 @@ taskq_next_ent(taskq_t *tq)
 {
        struct list_head *list;
 
-       ASSERT(spin_is_locked(&tq->tq_lock));
-
        if (!list_empty(&tq->tq_prio_list))
                list = &tq->tq_prio_list;
        else if (!list_empty(&tq->tq_pend_list))
@@ -797,7 +788,8 @@ taskq_thread_spawn_task(void *arg)
 
        if (taskq_thread_create(tq) == NULL) {
                /* restore spawning count if failed */
-               spin_lock_irqsave_nested(&tq->tq_lock, flags, tq->tq_lock_class);
+               spin_lock_irqsave_nested(&tq->tq_lock, flags,
+                   tq->tq_lock_class);
                tq->tq_nspawn--;
                spin_unlock_irqrestore(&tq->tq_lock, flags);
        }
@@ -840,8 +832,6 @@ taskq_thread_spawn(taskq_t *tq)
 static int
 taskq_thread_should_stop(taskq_t *tq, taskq_thread_t *tqt)
 {
-       ASSERT(spin_is_locked(&tq->tq_lock));
-
        if (!(tq->tq_flags & TASKQ_DYNAMIC))
                return (0);
 
@@ -1159,7 +1149,8 @@ taskq_destroy(taskq_t *tq)
        while (tq->tq_nspawn) {
                spin_unlock_irqrestore(&tq->tq_lock, flags);
                schedule_timeout_interruptible(1);
-               spin_lock_irqsave_nested(&tq->tq_lock, flags, tq->tq_lock_class);
+               spin_lock_irqsave_nested(&tq->tq_lock, flags,
+                   tq->tq_lock_class);
        }
 
        /*
@@ -1252,16 +1243,16 @@ param_set_taskq_kick(const char *val, struct kernel_param *kp)
 
 #ifdef module_param_cb
 static const struct kernel_param_ops param_ops_taskq_kick = {
-        .set = param_set_taskq_kick,
-        .get = param_get_uint,
+       .set = param_set_taskq_kick,
+       .get = param_get_uint,
 };
 module_param_cb(spl_taskq_kick, &param_ops_taskq_kick, &spl_taskq_kick, 0644);
 #else
 module_param_call(spl_taskq_kick, param_set_taskq_kick, param_get_uint,
-    &spl_taskq_kick, 0644);
+       &spl_taskq_kick, 0644);
 #endif
 MODULE_PARM_DESC(spl_taskq_kick,
-    "Write nonzero to kick stuck taskqs to spawn more threads");
+       "Write nonzero to kick stuck taskqs to spawn more threads");
 
 int
 spl_taskq_init(void)
index b0f4d57157578b6d48b93b608a0b3168a6a2edf7..6f640fd71d9e42282a79b1c7b07eca59475946d7 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Thread Implementation.
 \*****************************************************************************/
 
@@ -33,8 +33,8 @@
  */
 typedef struct thread_priv_s {
        unsigned long tp_magic;         /* Magic */
-        int tp_name_size;              /* Name size */
-        char *tp_name;                 /* Name (without _thread suffix) */
+       int tp_name_size;               /* Name size */
+       char *tp_name;                  /* Name (without _thread suffix) */
        void (*tp_func)(void *);        /* Registered function */
        void *tp_args;                  /* Args to be passed to function */
        size_t tp_len;                  /* Len to be passed to function */
@@ -55,12 +55,12 @@ thread_generic_wrapper(void *arg)
        set_current_state(tp->tp_state);
        set_user_nice((kthread_t *)current, PRIO_TO_NICE(tp->tp_pri));
        kmem_free(tp->tp_name, tp->tp_name_size);
-       kmem_free(tp, sizeof(thread_priv_t));
+       kmem_free(tp, sizeof (thread_priv_t));
 
        if (func)
                func(args);
 
-       return 0;
+       return (0);
 }
 
 void
@@ -72,13 +72,14 @@ __thread_exit(void)
 }
 EXPORT_SYMBOL(__thread_exit);
 
-/* thread_create() may block forever if it cannot create a thread or
+/*
+ * thread_create() may block forever if it cannot create a thread or
  * allocate memory.  This is preferable to returning a NULL which Solaris
- * style callers likely never check for... since it can't fail. */
+ * style callers likely never check for... since it can't fail.
+ */
 kthread_t *
 __thread_create(caddr_t stk, size_t  stksize, thread_func_t func,
-               const char *name, void *args, size_t len, proc_t *pp,
-               int state, pri_t pri)
+    const char *name, void *args, size_t len, proc_t *pp, int state, pri_t pri)
 {
        thread_priv_t *tp;
        struct task_struct *tsk;
@@ -88,7 +89,7 @@ __thread_create(caddr_t stk, size_t  stksize, thread_func_t func,
        /* Variable stack size unsupported */
        ASSERT(stk == NULL);
 
-       tp = kmem_alloc(sizeof(thread_priv_t), KM_PUSHPAGE);
+       tp = kmem_alloc(sizeof (thread_priv_t), KM_PUSHPAGE);
        if (tp == NULL)
                return (NULL);
 
@@ -96,14 +97,15 @@ __thread_create(caddr_t stk, size_t  stksize, thread_func_t func,
        tp->tp_name_size = strlen(name) + 1;
 
        tp->tp_name = kmem_alloc(tp->tp_name_size, KM_PUSHPAGE);
-        if (tp->tp_name == NULL) {
-               kmem_free(tp, sizeof(thread_priv_t));
+       if (tp->tp_name == NULL) {
+               kmem_free(tp, sizeof (thread_priv_t));
                return (NULL);
        }
 
        strncpy(tp->tp_name, name, tp->tp_name_size);
 
-       /* Strip trailing "_thread" from passed name which will be the func
+       /*
+        * Strip trailing "_thread" from passed name which will be the func
         * name since the exposed API has no parameter for passing a name.
         */
        p = strstr(tp->tp_name, "_thread");
@@ -117,7 +119,7 @@ __thread_create(caddr_t stk, size_t  stksize, thread_func_t func,
        tp->tp_pri   = pri;
 
        tsk = spl_kthread_create(thread_generic_wrapper, (void *)tp,
-                            "%s", tp->tp_name);
+           "%s", tp->tp_name);
        if (IS_ERR(tsk))
                return (NULL);
 
@@ -139,7 +141,7 @@ spl_kthread_create(int (*func)(void *), void *data, const char namefmt[], ...)
        char name[TASK_COMM_LEN];
 
        va_start(args, namefmt);
-       vsnprintf(name, sizeof(name), namefmt, args);
+       vsnprintf(name, sizeof (name), namefmt, args);
        va_end(args);
        do {
                tsk = kthread_create(func, data, "%s", name);
index bf8235063be3d4dfd54871cd84658d1566cabbb2..4c800292ae776be19b57602156654b06768fdc3b 100644 (file)
@@ -315,7 +315,6 @@ tsd_hash_add_pid(tsd_hash_table_t *table, pid_t pid)
 static void
 tsd_hash_del(tsd_hash_table_t *table, tsd_hash_entry_t *entry)
 {
-       ASSERT(spin_is_locked(&table->ht_lock));
        hlist_del(&entry->he_list);
        list_del_init(&entry->he_key_list);
        list_del_init(&entry->he_pid_list);
index ca19d7343ca0fc0a4e7c0b12fb1d154c79cd4e0f..74ae8fe06f5c44fd8ce90df0332955df212cafb2 100644 (file)
@@ -20,7 +20,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) Vnode Implementation.
 \*****************************************************************************/
 
@@ -43,27 +43,27 @@ vtype_t
 vn_mode_to_vtype(mode_t mode)
 {
        if (S_ISREG(mode))
-               return VREG;
+               return (VREG);
 
        if (S_ISDIR(mode))
-               return VDIR;
+               return (VDIR);
 
        if (S_ISCHR(mode))
-               return VCHR;
+               return (VCHR);
 
        if (S_ISBLK(mode))
-               return VBLK;
+               return (VBLK);
 
        if (S_ISFIFO(mode))
-               return VFIFO;
+               return (VFIFO);
 
        if (S_ISLNK(mode))
-               return VLNK;
+               return (VLNK);
 
        if (S_ISSOCK(mode))
-               return VSOCK;
+               return (VSOCK);
 
-       return VNON;
+       return (VNON);
 } /* vn_mode_to_vtype() */
 EXPORT_SYMBOL(vn_mode_to_vtype);
 
@@ -71,27 +71,27 @@ mode_t
 vn_vtype_to_mode(vtype_t vtype)
 {
        if (vtype == VREG)
-               return S_IFREG;
+               return (S_IFREG);
 
        if (vtype == VDIR)
-               return S_IFDIR;
+               return (S_IFDIR);
 
        if (vtype == VCHR)
-               return S_IFCHR;
+               return (S_IFCHR);
 
        if (vtype == VBLK)
-               return S_IFBLK;
+               return (S_IFBLK);
 
        if (vtype == VFIFO)
-               return S_IFIFO;
+               return (S_IFIFO);
 
        if (vtype == VLNK)
-               return S_IFLNK;
+               return (S_IFLNK);
 
        if (vtype == VSOCK)
-               return S_IFSOCK;
+               return (S_IFSOCK);
 
-       return VNON;
+       return (VNON);
 } /* vn_vtype_to_mode() */
 EXPORT_SYMBOL(vn_vtype_to_mode);
 
@@ -118,8 +118,8 @@ vn_free(vnode_t *vp)
 EXPORT_SYMBOL(vn_free);
 
 int
-vn_open(const char *path, uio_seg_t seg, int flags, int mode,
-       vnode_t **vpp, int x1, void *x2)
+vn_open(const char *path, uio_seg_t seg, int flags, int mode, vnode_t **vpp,
+    int x1, void *x2)
 {
        struct file *fp;
        struct kstat stat;
@@ -135,7 +135,8 @@ vn_open(const char *path, uio_seg_t seg, int flags, int mode,
        if (!(flags & FCREAT) && (flags & FWRITE))
                flags |= FEXCL;
 
-       /* Note for filp_open() the two low bits must be remapped to mean:
+       /*
+        * Note for filp_open() the two low bits must be remapped to mean:
         * 01 - read-only  -> 00 read-only
         * 10 - write-only -> 01 write-only
         * 11 - read-write -> 10 read-write
@@ -148,7 +149,7 @@ vn_open(const char *path, uio_seg_t seg, int flags, int mode,
        fp = filp_open(path, flags, mode);
 
        if (flags & FCREAT)
-               (void)xchg(&current->fs->umask, saved_umask);
+               (void) xchg(&current->fs->umask, saved_umask);
 
        if (IS_ERR(fp))
                return (-PTR_ERR(fp));
@@ -187,7 +188,7 @@ EXPORT_SYMBOL(vn_open);
 
 int
 vn_openat(const char *path, uio_seg_t seg, int flags, int mode,
-         vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd)
+    vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd)
 {
        char *realpath;
        int len, rc;
@@ -199,7 +200,7 @@ vn_openat(const char *path, uio_seg_t seg, int flags, int mode,
        if (!realpath)
                return (ENOMEM);
 
-       (void)snprintf(realpath, len, "/%s", path);
+       (void) snprintf(realpath, len, "/%s", path);
        rc = vn_open(realpath, seg, flags, mode, vpp, x1, x2);
        kfree(realpath);
 
@@ -209,7 +210,7 @@ EXPORT_SYMBOL(vn_openat);
 
 int
 vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len, offset_t off,
-       uio_seg_t seg, int ioflag, rlim64_t x2, void *x3, ssize_t *residp)
+    uio_seg_t seg, int ioflag, rlim64_t x2, void *x3, ssize_t *residp)
 {
        struct file *fp = vp->v_file;
        loff_t offset = off;
@@ -259,9 +260,11 @@ vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4)
 } /* vn_close() */
 EXPORT_SYMBOL(vn_close);
 
-/* vn_seek() does not actually seek it only performs bounds checking on the
+/*
+ * vn_seek() does not actually seek it only performs bounds checking on the
  * proposed seek.  We perform minimal checking and allow vn_rdwr() to catch
- * anything more serious. */
+ * anything more serious.
+ */
 int
 vn_seek(vnode_t *vp, offset_t ooff, offset_t *noffp, void *ct)
 {
@@ -269,223 +272,6 @@ vn_seek(vnode_t *vp, offset_t ooff, offset_t *noffp, void *ct)
 }
 EXPORT_SYMBOL(vn_seek);
 
-/*
- * spl_basename() takes a NULL-terminated string s as input containing a path.
- * It returns a char pointer to a string and a length that describe the
- * basename of the path. If the basename is not "." or "/", it will be an index
- * into the string. While the string should be NULL terminated, the section
- * referring to the basename is not. spl_basename is dual-licensed GPLv2+ and
- * CC0. Anyone wishing to reuse it in another codebase may pick either license.
- */
-static void
-spl_basename(const char *s, const char **str, int *len)
-{
-       size_t i, end;
-
-       ASSERT(str);
-       ASSERT(len);
-
-       if (!s || !*s) {
-               *str = ".";
-               *len = 1;
-               return;
-       }
-
-       i = strlen(s) - 1;
-
-       while (i && s[i--] == '/');
-
-       if (i == 0) {
-               *str = "/";
-               *len = 1;
-               return;
-       }
-
-       end = i;
-
-       for (end = i; i; i--) {
-               if (s[i] == '/') {
-                       *str = &s[i+1];
-                       *len = end - i + 1;
-                       return;
-               }
-       }
-
-       *str = s;
-       *len = end + 1;
-}
-
-static struct dentry *
-spl_kern_path_locked(const char *name, struct path *path)
-{
-       struct path parent;
-       struct dentry *dentry;
-       const char *basename;
-       int len;
-       int rc;
-
-       ASSERT(name);
-       ASSERT(path);
-
-       spl_basename(name, &basename, &len);
-
-       /* We do not accept "." or ".." */
-       if (len <= 2 && basename[0] == '.')
-               if (len == 1 || basename[1] == '.')
-                       return (ERR_PTR(-EACCES));
-
-       rc = kern_path(name, LOOKUP_PARENT, &parent);
-       if (rc)
-               return (ERR_PTR(rc));
-
-       /* use I_MUTEX_PARENT because vfs_unlink needs it */
-       spl_inode_lock_nested(parent.dentry->d_inode, I_MUTEX_PARENT);
-
-       dentry = lookup_one_len(basename, parent.dentry, len);
-       if (IS_ERR(dentry)) {
-               spl_inode_unlock(parent.dentry->d_inode);
-               path_put(&parent);
-       } else {
-               *path = parent;
-       }
-
-       return (dentry);
-}
-
-/* Based on do_unlinkat() from linux/fs/namei.c */
-int
-vn_remove(const char *path, uio_seg_t seg, int flags)
-{
-       struct dentry *dentry;
-       struct path parent;
-       struct inode *inode = NULL;
-       int rc = 0;
-
-       ASSERT(seg == UIO_SYSSPACE);
-       ASSERT(flags == RMFILE);
-
-       dentry = spl_kern_path_locked(path, &parent);
-       rc = PTR_ERR(dentry);
-       if (!IS_ERR(dentry)) {
-               if (parent.dentry->d_name.name[parent.dentry->d_name.len]) {
-                       rc = 0;
-                       goto slashes;
-               }
-
-               inode = dentry->d_inode;
-               if (inode) {
-                       atomic_inc(&inode->i_count);
-               } else {
-                       rc = 0;
-                       goto slashes;
-               }
-
-#ifdef HAVE_2ARGS_VFS_UNLINK
-               rc = vfs_unlink(parent.dentry->d_inode, dentry);
-#else
-               rc = vfs_unlink(parent.dentry->d_inode, dentry, NULL);
-#endif /* HAVE_2ARGS_VFS_UNLINK */
-exit1:
-               dput(dentry);
-       } else {
-               return (-rc);
-       }
-
-       spl_inode_unlock(parent.dentry->d_inode);
-       if (inode)
-               iput(inode);    /* truncate the inode here */
-
-       path_put(&parent);
-       return (-rc);
-
-slashes:
-       rc = !dentry->d_inode ? -ENOENT :
-           S_ISDIR(dentry->d_inode->i_mode) ? -EISDIR : -ENOTDIR;
-       goto exit1;
-} /* vn_remove() */
-EXPORT_SYMBOL(vn_remove);
-
-/* Based on do_rename() from linux/fs/namei.c */
-int
-vn_rename(const char *oldname, const char *newname, int x1)
-{
-       struct dentry *old_dir, *new_dir;
-       struct dentry *old_dentry, *new_dentry;
-       struct dentry *trap;
-       struct path old_parent, new_parent;
-       int rc = 0;
-
-       old_dentry = spl_kern_path_locked(oldname, &old_parent);
-       if (IS_ERR(old_dentry)) {
-               rc = PTR_ERR(old_dentry);
-               goto exit;
-       }
-
-       spl_inode_unlock(old_parent.dentry->d_inode);
-
-       new_dentry = spl_kern_path_locked(newname, &new_parent);
-       if (IS_ERR(new_dentry)) {
-               rc = PTR_ERR(new_dentry);
-               goto exit2;
-       }
-
-       spl_inode_unlock(new_parent.dentry->d_inode);
-
-       rc = -EXDEV;
-       if (old_parent.mnt != new_parent.mnt)
-               goto exit3;
-
-       old_dir = old_parent.dentry;
-       new_dir = new_parent.dentry;
-       trap = lock_rename(new_dir, old_dir);
-
-       /* source should not be ancestor of target */
-       rc = -EINVAL;
-       if (old_dentry == trap)
-               goto exit4;
-
-       /* target should not be an ancestor of source */
-       rc = -ENOTEMPTY;
-       if (new_dentry == trap)
-               goto exit4;
-
-       /* source must exist */
-       rc = -ENOENT;
-       if (!old_dentry->d_inode)
-               goto exit4;
-
-       /* unless the source is a directory trailing slashes give -ENOTDIR */
-       if (!S_ISDIR(old_dentry->d_inode->i_mode)) {
-               rc = -ENOTDIR;
-               if (old_dentry->d_name.name[old_dentry->d_name.len])
-                       goto exit4;
-               if (new_dentry->d_name.name[new_dentry->d_name.len])
-                       goto exit4;
-       }
-
-#if defined(HAVE_4ARGS_VFS_RENAME)
-       rc = vfs_rename(old_dir->d_inode, old_dentry,
-           new_dir->d_inode, new_dentry);
-#elif defined(HAVE_5ARGS_VFS_RENAME)
-       rc = vfs_rename(old_dir->d_inode, old_dentry,
-           new_dir->d_inode, new_dentry, NULL);
-#else
-       rc = vfs_rename(old_dir->d_inode, old_dentry,
-           new_dir->d_inode, new_dentry, NULL, 0);
-#endif
-exit4:
-       unlock_rename(new_dir, old_dir);
-exit3:
-       dput(new_dentry);
-       path_put(&new_parent);
-exit2:
-       dput(old_dentry);
-       path_put(&old_parent);
-exit:
-       return (-rc);
-}
-EXPORT_SYMBOL(vn_rename);
-
 int
 vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4)
 {
@@ -510,26 +296,27 @@ vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4)
        if (rc)
                return (-rc);
 
-       vap->va_type          = vn_mode_to_vtype(stat.mode);
-       vap->va_mode          = stat.mode;
-       vap->va_uid           = KUID_TO_SUID(stat.uid);
-       vap->va_gid           = KGID_TO_SGID(stat.gid);
-       vap->va_fsid          = 0;
-       vap->va_nodeid        = stat.ino;
-       vap->va_nlink         = stat.nlink;
-        vap->va_size          = stat.size;
-       vap->va_blksize       = stat.blksize;
-       vap->va_atime         = stat.atime;
-       vap->va_mtime         = stat.mtime;
-       vap->va_ctime         = stat.ctime;
-       vap->va_rdev          = stat.rdev;
-       vap->va_nblocks       = stat.blocks;
+       vap->va_type    = vn_mode_to_vtype(stat.mode);
+       vap->va_mode    = stat.mode;
+       vap->va_uid     = KUID_TO_SUID(stat.uid);
+       vap->va_gid     = KGID_TO_SGID(stat.gid);
+       vap->va_fsid    = 0;
+       vap->va_nodeid  = stat.ino;
+       vap->va_nlink   = stat.nlink;
+       vap->va_size    = stat.size;
+       vap->va_blksize = stat.blksize;
+       vap->va_atime   = stat.atime;
+       vap->va_mtime   = stat.mtime;
+       vap->va_ctime   = stat.ctime;
+       vap->va_rdev    = stat.rdev;
+       vap->va_nblocks = stat.blocks;
 
        return (0);
 }
 EXPORT_SYMBOL(vn_getattr);
 
-int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4)
+int
+vn_fsync(vnode_t *vp, int flags, void *x3, void *x4)
 {
        int datasync = 0;
        int error;
@@ -614,9 +401,8 @@ int vn_space(vnode_t *vp, int cmd, struct flock *bfp, int flag,
                --end;
 
                vp->v_file->f_dentry->d_inode->i_op->truncate_range(
-                       vp->v_file->f_dentry->d_inode,
-                       bfp->l_start, end
-               );
+                   vp->v_file->f_dentry->d_inode, bfp->l_start, end);
+
                return (0);
        }
 #endif
@@ -629,24 +415,22 @@ EXPORT_SYMBOL(vn_space);
 static file_t *
 file_find(int fd, struct task_struct *task)
 {
-        file_t *fp;
-
-       ASSERT(spin_is_locked(&vn_file_lock));
+       file_t *fp;
 
-        list_for_each_entry(fp, &vn_file_list,  f_list) {
+       list_for_each_entry(fp, &vn_file_list,  f_list) {
                if (fd == fp->f_fd && fp->f_task == task) {
                        ASSERT(atomic_read(&fp->f_ref) != 0);
-                        return fp;
+                       return (fp);
                }
        }
 
-        return NULL;
+       return (NULL);
 } /* file_find() */
 
 file_t *
 vn_getf(int fd)
 {
-        struct kstat stat;
+       struct kstat stat;
        struct file *lfp;
        file_t *fp;
        vnode_t *vp;
@@ -701,13 +485,14 @@ vn_getf(int fd)
                goto out_fget;
 
 #if defined(HAVE_4ARGS_VFS_GETATTR)
-       rc = vfs_getattr(&lfp->f_path, &stat, STATX_TYPE, AT_STATX_SYNC_AS_STAT);
+       rc = vfs_getattr(&lfp->f_path, &stat, STATX_TYPE,
+           AT_STATX_SYNC_AS_STAT);
 #elif defined(HAVE_2ARGS_VFS_GETATTR)
        rc = vfs_getattr(&lfp->f_path, &stat);
 #else
        rc = vfs_getattr(lfp->f_path.mnt, lfp->f_dentry, &stat);
 #endif
-        if (rc)
+       if (rc)
                goto out_vnode;
 
        mutex_enter(&vp->v_lock);
@@ -734,7 +519,7 @@ out_mutex:
        mutex_exit(&fp->f_lock);
        kmem_cache_free(vn_file_cache, fp);
 out:
-        return (NULL);
+       return (NULL);
 } /* getf() */
 EXPORT_SYMBOL(getf);
 
@@ -775,12 +560,10 @@ vn_areleasef(int fd, uf_info_t *fip)
                        return;
                }
 
-               list_del(&fp->f_list);
+               list_del(&fp->f_list);
                releasef_locked(fp);
        }
        spin_unlock(&vn_file_lock);
-
-       return;
 } /* releasef() */
 EXPORT_SYMBOL(areleasef);
 
@@ -815,34 +598,34 @@ vn_set_fs_pwd(struct fs_struct *fs, struct path *path)
 int
 vn_set_pwd(const char *filename)
 {
-        struct path path;
-        mm_segment_t saved_fs;
-        int rc;
-
-        /*
-         * user_path_dir() and __user_walk() both expect 'filename' to be
-         * a user space address so we must briefly increase the data segment
-         * size to ensure strncpy_from_user() does not fail with -EFAULT.
-         */
-        saved_fs = get_fs();
-        set_fs(get_ds());
-
-        rc = user_path_dir(filename, &path);
-        if (rc)
+       struct path path;
+       mm_segment_t saved_fs;
+       int rc;
+
+       /*
+        * user_path_dir() and __user_walk() both expect 'filename' to be
+        * a user space address so we must briefly increase the data segment
+        * size to ensure strncpy_from_user() does not fail with -EFAULT.
+        */
+       saved_fs = get_fs();
+       set_fs(get_ds());
+
+       rc = user_path_dir(filename, &path);
+       if (rc)
                goto out;
 
-        rc = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS);
-        if (rc)
+       rc = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS);
+       if (rc)
                goto dput_and_out;
 
-        vn_set_fs_pwd(current->fs, &path);
+       vn_set_fs_pwd(current->fs, &path);
 
 dput_and_out:
-        path_put(&path);
+       path_put(&path);
 out:
        set_fs(saved_fs);
 
-        return (-rc);
+       return (-rc);
 } /* vn_set_pwd() */
 EXPORT_SYMBOL(vn_set_pwd);
 
@@ -870,11 +653,11 @@ vn_file_cache_constructor(void *buf, void *cdrarg, int kmflags)
        file_t *fp = buf;
 
        atomic_set(&fp->f_ref, 0);
-        mutex_init(&fp->f_lock, NULL, MUTEX_DEFAULT, NULL);
+       mutex_init(&fp->f_lock, NULL, MUTEX_DEFAULT, NULL);
        INIT_LIST_HEAD(&fp->f_list);
 
-        return (0);
-} /* file_cache_constructor() */
+       return (0);
+} /* vn_file_cache_constructor() */
 
 static void
 vn_file_cache_destructor(void *buf, void *cdrarg)
@@ -888,29 +671,26 @@ int
 spl_vn_init(void)
 {
        vn_cache = kmem_cache_create("spl_vn_cache",
-                                    sizeof(struct vnode), 64,
-                                    vn_cache_constructor,
-                                    vn_cache_destructor,
-                                    NULL, NULL, NULL, 0);
+           sizeof (struct vnode), 64, vn_cache_constructor,
+           vn_cache_destructor, NULL, NULL, NULL, 0);
 
        vn_file_cache = kmem_cache_create("spl_vn_file_cache",
-                                         sizeof(file_t), 64,
-                                         vn_file_cache_constructor,
-                                         vn_file_cache_destructor,
-                                         NULL, NULL, NULL, 0);
+           sizeof (file_t), 64, vn_file_cache_constructor,
+           vn_file_cache_destructor, NULL, NULL, NULL, 0);
+
        return (0);
-} /* vn_init() */
+} /* spl_vn_init() */
 
 void
 spl_vn_fini(void)
 {
-        file_t *fp, *next_fp;
+       file_t *fp, *next_fp;
        int leaked = 0;
 
        spin_lock(&vn_file_lock);
 
-        list_for_each_entry_safe(fp, next_fp, &vn_file_list,  f_list) {
-               list_del(&fp->f_list);
+       list_for_each_entry_safe(fp, next_fp, &vn_file_list,  f_list) {
+               list_del(&fp->f_list);
                releasef_locked(fp);
                leaked++;
        }
@@ -922,6 +702,4 @@ spl_vn_fini(void)
 
        kmem_cache_destroy(vn_file_cache);
        kmem_cache_destroy(vn_cache);
-
-       return;
-} /* vn_fini() */
+} /* spl_vn_fini() */
index 9405dc88d58e999ac2d227ad5e2a30a541cf6548..456887e3b1c03ba5777f013328b4daaa0480bff3 100644 (file)
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
  *  Solaris Porting Layer (SPL) XDR Implementation.
 \*****************************************************************************/
 
@@ -160,15 +160,15 @@ EXPORT_SYMBOL(xdrmem_create);
 static bool_t
 xdrmem_control(XDR *xdrs, int req, void *info)
 {
-       struct xdr_bytesrec *rec = (struct xdr_bytesrec *) info;
+       struct xdr_bytesrec *rec = (struct xdr_bytesrec *)info;
 
        if (req != XDR_GET_BYTES_AVAIL)
-               return FALSE;
+               return (FALSE);
 
        rec->xc_is_last_record = TRUE; /* always TRUE in xdrmem streams */
        rec->xc_num_avail = xdrs->x_addr_end - xdrs->x_addr;
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -178,13 +178,13 @@ xdrmem_enc_bytes(XDR *xdrs, caddr_t cp, const uint_t cnt)
        uint_t pad;
 
        if (size < cnt)
-               return FALSE; /* Integer overflow */
+               return (FALSE); /* Integer overflow */
 
        if (xdrs->x_addr > xdrs->x_addr_end)
-               return FALSE;
+               return (FALSE);
 
        if (xdrs->x_addr_end - xdrs->x_addr < size)
-               return FALSE;
+               return (FALSE);
 
        memcpy(xdrs->x_addr, cp, cnt);
 
@@ -196,7 +196,7 @@ xdrmem_enc_bytes(XDR *xdrs, caddr_t cp, const uint_t cnt)
                xdrs->x_addr += pad;
        }
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -207,13 +207,13 @@ xdrmem_dec_bytes(XDR *xdrs, caddr_t cp, const uint_t cnt)
        uint_t pad;
 
        if (size < cnt)
-               return FALSE; /* Integer overflow */
+               return (FALSE); /* Integer overflow */
 
        if (xdrs->x_addr > xdrs->x_addr_end)
-               return FALSE;
+               return (FALSE);
 
        if (xdrs->x_addr_end - xdrs->x_addr < size)
-               return FALSE;
+               return (FALSE);
 
        memcpy(cp, xdrs->x_addr, cnt);
        xdrs->x_addr += cnt;
@@ -222,38 +222,38 @@ xdrmem_dec_bytes(XDR *xdrs, caddr_t cp, const uint_t cnt)
        if (pad > 0) {
                /* An inverted memchr() would be useful here... */
                if (memcmp(&zero, xdrs->x_addr, pad) != 0)
-                       return FALSE;
+                       return (FALSE);
 
                xdrs->x_addr += pad;
        }
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
 xdrmem_enc_uint32(XDR *xdrs, uint32_t val)
 {
-       if (xdrs->x_addr + sizeof(uint32_t) > xdrs->x_addr_end)
-               return FALSE;
+       if (xdrs->x_addr + sizeof (uint32_t) > xdrs->x_addr_end)
+               return (FALSE);
 
-       *((uint32_t *) xdrs->x_addr) = cpu_to_be32(val);
+       *((uint32_t *)xdrs->x_addr) = cpu_to_be32(val);
 
-       xdrs->x_addr += sizeof(uint32_t);
+       xdrs->x_addr += sizeof (uint32_t);
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
 xdrmem_dec_uint32(XDR *xdrs, uint32_t *val)
 {
-       if (xdrs->x_addr + sizeof(uint32_t) > xdrs->x_addr_end)
-               return FALSE;
+       if (xdrs->x_addr + sizeof (uint32_t) > xdrs->x_addr_end)
+               return (FALSE);
 
-       *val = be32_to_cpu(*((uint32_t *) xdrs->x_addr));
+       *val = be32_to_cpu(*((uint32_t *)xdrs->x_addr));
 
-       xdrs->x_addr += sizeof(uint32_t);
+       xdrs->x_addr += sizeof (uint32_t);
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -261,10 +261,10 @@ xdrmem_enc_char(XDR *xdrs, char *cp)
 {
        uint32_t val;
 
-       BUILD_BUG_ON(sizeof(char) != 1);
+       BUILD_BUG_ON(sizeof (char) != 1);
        val = *((unsigned char *) cp);
 
-       return xdrmem_enc_uint32(xdrs, val);
+       return (xdrmem_enc_uint32(xdrs, val));
 }
 
 static bool_t
@@ -272,10 +272,10 @@ xdrmem_dec_char(XDR *xdrs, char *cp)
 {
        uint32_t val;
 
-       BUILD_BUG_ON(sizeof(char) != 1);
+       BUILD_BUG_ON(sizeof (char) != 1);
 
        if (!xdrmem_dec_uint32(xdrs, &val))
-               return FALSE;
+               return (FALSE);
 
        /*
         * If any of the 3 other bytes are non-zero then val will be greater
@@ -283,19 +283,19 @@ xdrmem_dec_char(XDR *xdrs, char *cp)
         * not have a char encoded in it.
         */
        if (val > 0xff)
-               return FALSE;
+               return (FALSE);
 
        *((unsigned char *) cp) = val;
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
 xdrmem_enc_ushort(XDR *xdrs, unsigned short *usp)
 {
-       BUILD_BUG_ON(sizeof(unsigned short) != 2);
+       BUILD_BUG_ON(sizeof (unsigned short) != 2);
 
-       return xdrmem_enc_uint32(xdrs, *usp);
+       return (xdrmem_enc_uint32(xdrs, *usp));
 }
 
 static bool_t
@@ -303,48 +303,48 @@ xdrmem_dec_ushort(XDR *xdrs, unsigned short *usp)
 {
        uint32_t val;
 
-       BUILD_BUG_ON(sizeof(unsigned short) != 2);
+       BUILD_BUG_ON(sizeof (unsigned short) != 2);
 
        if (!xdrmem_dec_uint32(xdrs, &val))
-               return FALSE;
+               return (FALSE);
 
        /*
         * Short ints are not in the RFC, but we assume similar logic as in
         * xdrmem_dec_char().
         */
        if (val > 0xffff)
-               return FALSE;
+               return (FALSE);
 
        *usp = val;
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
 xdrmem_enc_uint(XDR *xdrs, unsigned *up)
 {
-       BUILD_BUG_ON(sizeof(unsigned) != 4);
+       BUILD_BUG_ON(sizeof (unsigned) != 4);
 
-       return xdrmem_enc_uint32(xdrs, *up);
+       return (xdrmem_enc_uint32(xdrs, *up));
 }
 
 static bool_t
 xdrmem_dec_uint(XDR *xdrs, unsigned *up)
 {
-       BUILD_BUG_ON(sizeof(unsigned) != 4);
+       BUILD_BUG_ON(sizeof (unsigned) != 4);
 
-       return xdrmem_dec_uint32(xdrs, (uint32_t *) up);
+       return (xdrmem_dec_uint32(xdrs, (uint32_t *)up));
 }
 
 static bool_t
 xdrmem_enc_ulonglong(XDR *xdrs, u_longlong_t *ullp)
 {
-       BUILD_BUG_ON(sizeof(u_longlong_t) != 8);
+       BUILD_BUG_ON(sizeof (u_longlong_t) != 8);
 
        if (!xdrmem_enc_uint32(xdrs, *ullp >> 32))
-               return FALSE;
+               return (FALSE);
 
-       return xdrmem_enc_uint32(xdrs, *ullp & 0xffffffff);
+       return (xdrmem_enc_uint32(xdrs, *ullp & 0xffffffff));
 }
 
 static bool_t
@@ -352,16 +352,16 @@ xdrmem_dec_ulonglong(XDR *xdrs, u_longlong_t *ullp)
 {
        uint32_t low, high;
 
-       BUILD_BUG_ON(sizeof(u_longlong_t) != 8);
+       BUILD_BUG_ON(sizeof (u_longlong_t) != 8);
 
        if (!xdrmem_dec_uint32(xdrs, &high))
-               return FALSE;
+               return (FALSE);
        if (!xdrmem_dec_uint32(xdrs, &low))
-               return FALSE;
+               return (FALSE);
 
-       *ullp = ((u_longlong_t) high << 32) | low;
+       *ullp = ((u_longlong_t)high << 32) | low;
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -372,18 +372,18 @@ xdr_enc_array(XDR *xdrs, caddr_t *arrp, uint_t *sizep, const uint_t maxsize,
        caddr_t addr = *arrp;
 
        if (*sizep > maxsize || *sizep > UINT_MAX / elsize)
-               return FALSE;
+               return (FALSE);
 
        if (!xdrmem_enc_uint(xdrs, sizep))
-               return FALSE;
+               return (FALSE);
 
        for (i = 0; i < *sizep; i++) {
                if (!elproc(xdrs, addr))
-                       return FALSE;
+                       return (FALSE);
                addr += elsize;
        }
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -395,23 +395,23 @@ xdr_dec_array(XDR *xdrs, caddr_t *arrp, uint_t *sizep, const uint_t maxsize,
        caddr_t addr;
 
        if (!xdrmem_dec_uint(xdrs, sizep))
-               return FALSE;
+               return (FALSE);
 
        size = *sizep;
 
        if (size > maxsize || size > UINT_MAX / elsize)
-               return FALSE;
+               return (FALSE);
 
        /*
         * The Solaris man page says: "If *arrp is NULL when decoding,
         * xdr_array() allocates memory and *arrp points to it".
         */
        if (*arrp == NULL) {
-               BUILD_BUG_ON(sizeof(uint_t) > sizeof(size_t));
+               BUILD_BUG_ON(sizeof (uint_t) > sizeof (size_t));
 
                *arrp = kmem_alloc(size * elsize, KM_NOSLEEP);
                if (*arrp == NULL)
-                       return FALSE;
+                       return (FALSE);
 
                alloc = TRUE;
        }
@@ -422,12 +422,12 @@ xdr_dec_array(XDR *xdrs, caddr_t *arrp, uint_t *sizep, const uint_t maxsize,
                if (!elproc(xdrs, addr)) {
                        if (alloc)
                                kmem_free(*arrp, size * elsize);
-                       return FALSE;
+                       return (FALSE);
                }
                addr += elsize;
        }
 
-       return TRUE;
+       return (TRUE);
 }
 
 static bool_t
@@ -437,14 +437,14 @@ xdr_enc_string(XDR *xdrs, char **sp, const uint_t maxsize)
        uint_t len;
 
        if (slen > maxsize)
-               return FALSE;
+               return (FALSE);
 
        len = slen;
 
        if (!xdrmem_enc_uint(xdrs, &len))
-               return FALSE;
+               return (FALSE);
 
-       return xdrmem_enc_bytes(xdrs, *sp, len);
+       return (xdrmem_enc_bytes(xdrs, *sp, len));
 }
 
 static bool_t
@@ -454,21 +454,21 @@ xdr_dec_string(XDR *xdrs, char **sp, const uint_t maxsize)
        bool_t alloc = FALSE;
 
        if (!xdrmem_dec_uint(xdrs, &size))
-               return FALSE;
+               return (FALSE);
 
        if (size > maxsize || size > UINT_MAX - 1)
-               return FALSE;
+               return (FALSE);
 
        /*
         * Solaris man page: "If *sp is NULL when decoding, xdr_string()
         * allocates memory and *sp points to it".
         */
        if (*sp == NULL) {
-               BUILD_BUG_ON(sizeof(uint_t) > sizeof(size_t));
+               BUILD_BUG_ON(sizeof (uint_t) > sizeof (size_t));
 
                *sp = kmem_alloc(size + 1, KM_NOSLEEP);
                if (*sp == NULL)
-                       return FALSE;
+                       return (FALSE);
 
                alloc = TRUE;
        }
@@ -481,34 +481,33 @@ xdr_dec_string(XDR *xdrs, char **sp, const uint_t maxsize)
 
        (*sp)[size] = '\0';
 
-       return TRUE;
+       return (TRUE);
 
 fail:
        if (alloc)
                kmem_free(*sp, size + 1);
 
-       return FALSE;
+       return (FALSE);
 }
 
 static struct xdr_ops xdrmem_encode_ops = {
-       .xdr_control      = xdrmem_control,
-       .xdr_char         = xdrmem_enc_char,
-       .xdr_u_short      = xdrmem_enc_ushort,
-       .xdr_u_int        = xdrmem_enc_uint,
-       .xdr_u_longlong_t = xdrmem_enc_ulonglong,
-       .xdr_opaque       = xdrmem_enc_bytes,
-       .xdr_string       = xdr_enc_string,
-       .xdr_array        = xdr_enc_array
+       .xdr_control            = xdrmem_control,
+       .xdr_char               = xdrmem_enc_char,
+       .xdr_u_short            = xdrmem_enc_ushort,
+       .xdr_u_int              = xdrmem_enc_uint,
+       .xdr_u_longlong_t       = xdrmem_enc_ulonglong,
+       .xdr_opaque             = xdrmem_enc_bytes,
+       .xdr_string             = xdr_enc_string,
+       .xdr_array              = xdr_enc_array
 };
 
 static struct xdr_ops xdrmem_decode_ops = {
-       .xdr_control      = xdrmem_control,
-       .xdr_char         = xdrmem_dec_char,
-       .xdr_u_short      = xdrmem_dec_ushort,
-       .xdr_u_int        = xdrmem_dec_uint,
-       .xdr_u_longlong_t = xdrmem_dec_ulonglong,
-       .xdr_opaque       = xdrmem_dec_bytes,
-       .xdr_string       = xdr_dec_string,
-       .xdr_array        = xdr_dec_array
+       .xdr_control            = xdrmem_control,
+       .xdr_char               = xdrmem_dec_char,
+       .xdr_u_short            = xdrmem_dec_ushort,
+       .xdr_u_int              = xdrmem_dec_uint,
+       .xdr_u_longlong_t       = xdrmem_dec_ulonglong,
+       .xdr_opaque             = xdrmem_dec_bytes,
+       .xdr_string             = xdr_dec_string,
+       .xdr_array              = xdr_dec_array
 };
-
index 77c2a1ddef3ba9e57ab60cbca177e93efa6a12b0..37fedb1c0dcbf1cf187f2c93281b4dfd35654952 100644 (file)
@@ -20,7 +20,8 @@
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
- *****************************************************************************
+ *
+ *
  *  z_compress_level/z_uncompress are nearly identical copies of the
  *  compress2/uncompress functions provided by the official zlib package
  *  available at http://zlib.net/.  The only changes made we to slightly
@@ -72,7 +73,7 @@ static spl_kmem_cache_t *zlib_workspace_cache;
 static void *
 zlib_workspace_alloc(int flags)
 {
-       return kmem_cache_alloc(zlib_workspace_cache, flags & ~(__GFP_FS));
+       return (kmem_cache_alloc(zlib_workspace_cache, flags & ~(__GFP_FS)));
 }
 
 static void
@@ -94,7 +95,7 @@ zlib_workspace_free(void *workspace)
  */
 int
 z_compress_level(void *dest, size_t *destLen, const void *source,
-                 size_t sourceLen, int level)
+    size_t sourceLen, int level)
 {
        z_stream stream;
        int err;
@@ -105,30 +106,30 @@ z_compress_level(void *dest, size_t *destLen, const void *source,
        stream.avail_out = (uInt)*destLen;
 
        if ((size_t)stream.avail_out != *destLen)
-               return Z_BUF_ERROR;
+               return (Z_BUF_ERROR);
 
        stream.workspace = zlib_workspace_alloc(KM_SLEEP);
        if (!stream.workspace)
-               return Z_MEM_ERROR;
+               return (Z_MEM_ERROR);
 
        err = zlib_deflateInit(&stream, level);
        if (err != Z_OK) {
                zlib_workspace_free(stream.workspace);
-               return err;
+               return (err);
        }
 
        err = zlib_deflate(&stream, Z_FINISH);
        if (err != Z_STREAM_END) {
                zlib_deflateEnd(&stream);
                zlib_workspace_free(stream.workspace);
-               return err == Z_OK ? Z_BUF_ERROR : err;
+               return (err == Z_OK ? Z_BUF_ERROR : err);
        }
        *destLen = stream.total_out;
 
        err = zlib_deflateEnd(&stream);
        zlib_workspace_free(stream.workspace);
 
-       return err;
+       return (err);
 }
 EXPORT_SYMBOL(z_compress_level);
 
@@ -159,16 +160,16 @@ z_uncompress(void *dest, size_t *destLen, const void *source, size_t sourceLen)
        stream.avail_out = (uInt)*destLen;
 
        if ((size_t)stream.avail_out != *destLen)
-               return Z_BUF_ERROR;
+               return (Z_BUF_ERROR);
 
        stream.workspace = zlib_workspace_alloc(KM_SLEEP);
        if (!stream.workspace)
-               return Z_MEM_ERROR;
+               return (Z_MEM_ERROR);
 
        err = zlib_inflateInit(&stream);
        if (err != Z_OK) {
                zlib_workspace_free(stream.workspace);
-               return err;
+               return (err);
        }
 
        err = zlib_inflate(&stream, Z_FINISH);
@@ -177,17 +178,17 @@ z_uncompress(void *dest, size_t *destLen, const void *source, size_t sourceLen)
                zlib_workspace_free(stream.workspace);
 
                if (err == Z_NEED_DICT ||
-                  (err == Z_BUF_ERROR && stream.avail_in == 0))
-                       return Z_DATA_ERROR;
+                   (err == Z_BUF_ERROR && stream.avail_in == 0))
+                       return (Z_DATA_ERROR);
 
-               return err;
+               return (err);
        }
        *destLen = stream.total_out;
 
        err = zlib_inflateEnd(&stream);
        zlib_workspace_free(stream.workspace);
 
-       return err;
+       return (err);
 }
 EXPORT_SYMBOL(z_uncompress);
 
@@ -203,15 +204,15 @@ spl_zlib_init(void)
            "spl_zlib_workspace_cache",
            size, 0, NULL, NULL, NULL, NULL, NULL,
            KMC_VMEM | KMC_NOEMERGENCY);
-        if (!zlib_workspace_cache)
+       if (!zlib_workspace_cache)
                return (1);
 
-        return (0);
+       return (0);
 }
 
 void
 spl_zlib_fini(void)
 {
        kmem_cache_destroy(zlib_workspace_cache);
-        zlib_workspace_cache = NULL;
+       zlib_workspace_cache = NULL;
 }
diff --git a/module/spl/spl.mod.c b/module/spl/spl.mod.c
new file mode 100644 (file)
index 0000000..42445b7
--- /dev/null
@@ -0,0 +1,190 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+       .name = KBUILD_MODNAME,
+       .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+       .exit = cleanup_module,
+#endif
+       .arch = MODULE_ARCH_INIT,
+};
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+       { 0x28950ef1, __VMLINUX_SYMBOL_STR(module_layout) },
+       { 0x6a5fa363, __VMLINUX_SYMBOL_STR(sigprocmask) },
+       { 0xacfa5975, __VMLINUX_SYMBOL_STR(kmem_cache_destroy) },
+       { 0x98ab5c8d, __VMLINUX_SYMBOL_STR(kmalloc_caches) },
+       { 0x65e75cb6, __VMLINUX_SYMBOL_STR(__list_del_entry) },
+       { 0xd2b09ce5, __VMLINUX_SYMBOL_STR(__kmalloc) },
+       { 0x5aeb145f, __VMLINUX_SYMBOL_STR(complete_and_exit) },
+       { 0x107e5878, __VMLINUX_SYMBOL_STR(zlib_inflateEnd) },
+       { 0x1ed8b599, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r8) },
+       { 0xf5893abf, __VMLINUX_SYMBOL_STR(up_read) },
+       { 0x4c4fef19, __VMLINUX_SYMBOL_STR(kernel_stack) },
+       { 0x784213a6, __VMLINUX_SYMBOL_STR(pv_lock_ops) },
+       { 0x628121e9, __VMLINUX_SYMBOL_STR(register_sysctl_table) },
+       { 0x68cd4849, __VMLINUX_SYMBOL_STR(inode_permission) },
+       { 0x4b7dcf38, __VMLINUX_SYMBOL_STR(_raw_qspin_lock) },
+       { 0x15692c87, __VMLINUX_SYMBOL_STR(param_ops_int) },
+       { 0xa0fbac79, __VMLINUX_SYMBOL_STR(wake_up_bit) },
+       { 0x754d539c, __VMLINUX_SYMBOL_STR(strlen) },
+       { 0x257f3887, __VMLINUX_SYMBOL_STR(seq_open) },
+       { 0xc8b57c27, __VMLINUX_SYMBOL_STR(autoremove_wake_function) },
+       { 0x263ed23b, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r12) },
+       { 0x930484aa, __VMLINUX_SYMBOL_STR(cpu_online_mask) },
+       { 0x79aa04a2, __VMLINUX_SYMBOL_STR(get_random_bytes) },
+       { 0xb5dcab5b, __VMLINUX_SYMBOL_STR(remove_wait_queue) },
+       { 0x50612798, __VMLINUX_SYMBOL_STR(seq_puts) },
+       { 0xd067fc5c, __VMLINUX_SYMBOL_STR(proc_dointvec) },
+       { 0xb54533f7, __VMLINUX_SYMBOL_STR(usecs_to_jiffies) },
+       { 0x20000329, __VMLINUX_SYMBOL_STR(simple_strtoul) },
+       { 0xc0a3d105, __VMLINUX_SYMBOL_STR(find_next_bit) },
+       { 0x74df1d4, __VMLINUX_SYMBOL_STR(seq_printf) },
+       { 0xa16aae11, __VMLINUX_SYMBOL_STR(remove_proc_entry) },
+       { 0x61aa871a, __VMLINUX_SYMBOL_STR(filp_close) },
+       { 0x593a99b, __VMLINUX_SYMBOL_STR(init_timer_key) },
+       { 0xf8983de7, __VMLINUX_SYMBOL_STR(prepare_to_wait_exclusive) },
+       { 0x4ed12f73, __VMLINUX_SYMBOL_STR(mutex_unlock) },
+       { 0x6def63e1, __VMLINUX_SYMBOL_STR(vfs_fsync) },
+       { 0x999e8297, __VMLINUX_SYMBOL_STR(vfree) },
+       { 0x54efb5d6, __VMLINUX_SYMBOL_STR(cpu_number) },
+       { 0x95dad3f2, __VMLINUX_SYMBOL_STR(path_get) },
+       { 0x9c3df9b4, __VMLINUX_SYMBOL_STR(seq_read) },
+       { 0xc35e4b4e, __VMLINUX_SYMBOL_STR(kthread_create_on_node) },
+       { 0x7d11c268, __VMLINUX_SYMBOL_STR(jiffies) },
+       { 0x343a1a8, __VMLINUX_SYMBOL_STR(__list_add) },
+       { 0x57a6ccd0, __VMLINUX_SYMBOL_STR(down_read) },
+       { 0xe2d5255a, __VMLINUX_SYMBOL_STR(strcmp) },
+       { 0xd2258c, __VMLINUX_SYMBOL_STR(kthread_bind) },
+       { 0xf432dd3d, __VMLINUX_SYMBOL_STR(__init_waitqueue_head) },
+       { 0x71de9b3f, __VMLINUX_SYMBOL_STR(_copy_to_user) },
+       { 0xffd5a395, __VMLINUX_SYMBOL_STR(default_wake_function) },
+       { 0x44f0d59d, __VMLINUX_SYMBOL_STR(PDE_DATA) },
+       { 0xfe7c4287, __VMLINUX_SYMBOL_STR(nr_cpu_ids) },
+       { 0x35b6b772, __VMLINUX_SYMBOL_STR(param_ops_charp) },
+       { 0x8062d53f, __VMLINUX_SYMBOL_STR(vfs_read) },
+       { 0xd5f2172f, __VMLINUX_SYMBOL_STR(del_timer_sync) },
+       { 0xfb578fc5, __VMLINUX_SYMBOL_STR(memset) },
+       { 0x73839c7a, __VMLINUX_SYMBOL_STR(proc_mkdir) },
+       { 0x11089ac7, __VMLINUX_SYMBOL_STR(_ctype) },
+       { 0x8f64aa4, __VMLINUX_SYMBOL_STR(_raw_spin_unlock_irqrestore) },
+       { 0xb8c7ff88, __VMLINUX_SYMBOL_STR(current_task) },
+       { 0x9a025cd5, __VMLINUX_SYMBOL_STR(__mutex_init) },
+       { 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) },
+       { 0xe15f42bb, __VMLINUX_SYMBOL_STR(_raw_spin_trylock) },
+       { 0x42f90a31, __VMLINUX_SYMBOL_STR(kthread_stop) },
+       { 0x449ad0a7, __VMLINUX_SYMBOL_STR(memcmp) },
+       { 0x7c1372e8, __VMLINUX_SYMBOL_STR(panic) },
+       { 0xe7b00dfb, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r13) },
+       { 0xa1c76e0a, __VMLINUX_SYMBOL_STR(_cond_resched) },
+       { 0x4d9b652b, __VMLINUX_SYMBOL_STR(rb_erase) },
+       { 0x9166fada, __VMLINUX_SYMBOL_STR(strncpy) },
+       { 0x9725b589, __VMLINUX_SYMBOL_STR(proc_doulongvec_minmax) },
+       { 0xce5ac24f, __VMLINUX_SYMBOL_STR(zlib_inflate_workspacesize) },
+       { 0x5a921311, __VMLINUX_SYMBOL_STR(strncmp) },
+       { 0x5792f848, __VMLINUX_SYMBOL_STR(strlcpy) },
+       { 0x19ee3d71, __VMLINUX_SYMBOL_STR(kmem_cache_free) },
+       { 0x93a6e0b2, __VMLINUX_SYMBOL_STR(io_schedule) },
+       { 0x16305289, __VMLINUX_SYMBOL_STR(warn_slowpath_null) },
+       { 0x9abdea30, __VMLINUX_SYMBOL_STR(mutex_lock) },
+       { 0x521445b, __VMLINUX_SYMBOL_STR(list_del) },
+       { 0x1e6d26a8, __VMLINUX_SYMBOL_STR(strstr) },
+       { 0xce8b1878, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r14) },
+       { 0xbe2c0274, __VMLINUX_SYMBOL_STR(add_timer) },
+       { 0xf0f1246c, __VMLINUX_SYMBOL_STR(kvasprintf) },
+       { 0xa07a37f0, __VMLINUX_SYMBOL_STR(memchr) },
+       { 0x5a0b73d0, __VMLINUX_SYMBOL_STR(zlib_deflateInit2) },
+       { 0x3b4ceb4a, __VMLINUX_SYMBOL_STR(up_write) },
+       { 0xe6e3b875, __VMLINUX_SYMBOL_STR(down_write) },
+       { 0xcd1850f2, __VMLINUX_SYMBOL_STR(fput) },
+       { 0xf82cfd1a, __VMLINUX_SYMBOL_STR(proc_dostring) },
+       { 0xc5ed6853, __VMLINUX_SYMBOL_STR(flush_signals) },
+       { 0x581f98da, __VMLINUX_SYMBOL_STR(zlib_inflate) },
+       { 0x16e297c3, __VMLINUX_SYMBOL_STR(bit_wait) },
+       { 0x9f984513, __VMLINUX_SYMBOL_STR(strrchr) },
+       { 0xd11b7a3e, __VMLINUX_SYMBOL_STR(kmem_cache_alloc) },
+       { 0x78764f4e, __VMLINUX_SYMBOL_STR(pv_irq_ops) },
+       { 0xb601be4c, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rdx) },
+       { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
+       { 0xc50bab05, __VMLINUX_SYMBOL_STR(unregister_shrinker) },
+       { 0xa916b694, __VMLINUX_SYMBOL_STR(strnlen) },
+       { 0xac3d20e2, __VMLINUX_SYMBOL_STR(unregister_sysctl_table) },
+       { 0x93fca811, __VMLINUX_SYMBOL_STR(__get_free_pages) },
+       { 0xe9f7149c, __VMLINUX_SYMBOL_STR(zlib_deflate_workspacesize) },
+       { 0xf0fdf6cb, __VMLINUX_SYMBOL_STR(__stack_chk_fail) },
+       { 0xc311ec22, __VMLINUX_SYMBOL_STR(cpu_possible_mask) },
+       { 0x9cb986f2, __VMLINUX_SYMBOL_STR(vmalloc_base) },
+       { 0xe200d2d5, __VMLINUX_SYMBOL_STR(param_get_uint) },
+       { 0xd62c833f, __VMLINUX_SYMBOL_STR(schedule_timeout) },
+       { 0x1000e51, __VMLINUX_SYMBOL_STR(schedule) },
+       { 0x79a38e61, __VMLINUX_SYMBOL_STR(___ratelimit) },
+       { 0x6b2dc060, __VMLINUX_SYMBOL_STR(dump_stack) },
+       { 0x2ea2c95c, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rax) },
+       { 0xe65cdceb, __VMLINUX_SYMBOL_STR(wake_up_process) },
+       { 0x9a5349f3, __VMLINUX_SYMBOL_STR(__put_cred) },
+       { 0xf8489fcd, __VMLINUX_SYMBOL_STR(user_path_at) },
+       { 0xbdfb6dbb, __VMLINUX_SYMBOL_STR(__fentry__) },
+       { 0x91242962, __VMLINUX_SYMBOL_STR(path_put) },
+       { 0x123f82f3, __VMLINUX_SYMBOL_STR(getrawmonotonic64) },
+       { 0x41ec4c1a, __VMLINUX_SYMBOL_STR(kmem_cache_alloc_trace) },
+       { 0xd94cc09, __VMLINUX_SYMBOL_STR(__per_cpu_offset) },
+       { 0x9327f5ce, __VMLINUX_SYMBOL_STR(_raw_spin_lock_irqsave) },
+       { 0xa5526619, __VMLINUX_SYMBOL_STR(rb_insert_color) },
+       { 0xaf5517a9, __VMLINUX_SYMBOL_STR(kmem_cache_create) },
+       { 0x35a88f28, __VMLINUX_SYMBOL_STR(zlib_inflateInit2) },
+       { 0xf2c43f3f, __VMLINUX_SYMBOL_STR(zlib_deflate) },
+       { 0x99195078, __VMLINUX_SYMBOL_STR(vsnprintf) },
+       { 0x4302d0eb, __VMLINUX_SYMBOL_STR(free_pages) },
+       { 0xcf21d241, __VMLINUX_SYMBOL_STR(__wake_up) },
+       { 0xb3f7646e, __VMLINUX_SYMBOL_STR(kthread_should_stop) },
+       { 0xe8a73aaf, __VMLINUX_SYMBOL_STR(out_of_line_wait_on_bit) },
+       { 0x8c34c149, __VMLINUX_SYMBOL_STR(proc_create_data) },
+       { 0x65bbbc78, __VMLINUX_SYMBOL_STR(schedule_hrtimeout_range) },
+       { 0x1685c91c, __VMLINUX_SYMBOL_STR(seq_lseek) },
+       { 0xa9bd2676, __VMLINUX_SYMBOL_STR(__vmalloc) },
+       { 0x9c55cec, __VMLINUX_SYMBOL_STR(schedule_timeout_interruptible) },
+       { 0x37a0cba, __VMLINUX_SYMBOL_STR(kfree) },
+       { 0x69acdf38, __VMLINUX_SYMBOL_STR(memcpy) },
+       { 0x5c8b5ce8, __VMLINUX_SYMBOL_STR(prepare_to_wait) },
+       { 0x8bfe8c57, __VMLINUX_SYMBOL_STR(param_set_uint) },
+       { 0x9518b623, __VMLINUX_SYMBOL_STR(register_shrinker) },
+       { 0x889c0220, __VMLINUX_SYMBOL_STR(set_user_nice) },
+       { 0xee46885d, __VMLINUX_SYMBOL_STR(add_wait_queue_exclusive) },
+       { 0x9185525, __VMLINUX_SYMBOL_STR(fget) },
+       { 0x7628f3c7, __VMLINUX_SYMBOL_STR(this_cpu_off) },
+       { 0xc890c008, __VMLINUX_SYMBOL_STR(zlib_deflateEnd) },
+       { 0xfa66f77c, __VMLINUX_SYMBOL_STR(finish_wait) },
+       { 0x4cbbd171, __VMLINUX_SYMBOL_STR(__bitmap_weight) },
+       { 0x55f5019b, __VMLINUX_SYMBOL_STR(__kmalloc_node) },
+       { 0x28318305, __VMLINUX_SYMBOL_STR(snprintf) },
+       { 0x4f897611, __VMLINUX_SYMBOL_STR(seq_release) },
+       { 0xb0e602eb, __VMLINUX_SYMBOL_STR(memmove) },
+       { 0xfbc4f89e, __VMLINUX_SYMBOL_STR(io_schedule_timeout) },
+       { 0x5541ea93, __VMLINUX_SYMBOL_STR(on_each_cpu) },
+       { 0xc26151de, __VMLINUX_SYMBOL_STR(vfs_getattr) },
+       { 0x77e2f33, __VMLINUX_SYMBOL_STR(_copy_from_user) },
+       { 0xe5d95985, __VMLINUX_SYMBOL_STR(param_ops_ulong) },
+       { 0x6d044c26, __VMLINUX_SYMBOL_STR(param_ops_uint) },
+       { 0x2a6e6109, __VMLINUX_SYMBOL_STR(__init_rwsem) },
+       { 0xc9bf2a38, __VMLINUX_SYMBOL_STR(vfs_write) },
+       { 0x9c7c731b, __VMLINUX_SYMBOL_STR(filp_open) },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+
+MODULE_INFO(srcversion, "2080768537B4B3B2FA210A5");
+MODULE_INFO(rhelversion, "7.4");
+#ifdef RETPOLINE
+       MODULE_INFO(retpoline, "Y");
+#endif
index ad69cf642119d695c4a6e52ebc753c1fd8d43f52..9160003702435020c7a7ab7637ddb3c2fad0e076 100644 (file)
 #define SPLAT_VNODE_TEST3_NAME         "vn_rdwr"
 #define SPLAT_VNODE_TEST3_DESC         "Vn_rdwrt Test"
 
-#define SPLAT_VNODE_TEST4_ID           0x0904
-#define SPLAT_VNODE_TEST4_NAME         "vn_rename"
-#define SPLAT_VNODE_TEST4_DESC         "Vn_rename Test"
-
 #define SPLAT_VNODE_TEST5_ID           0x0905
 #define SPLAT_VNODE_TEST5_NAME         "vn_getattr"
 #define SPLAT_VNODE_TEST5_DESC         "Vn_getattr Test"
@@ -218,94 +214,10 @@ splat_vnode_test3(struct file *file, void *arg)
 
 out:
         VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-       vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
 
         return -rc;
 } /* splat_vnode_test3() */
 
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
-static int
-splat_vnode_test4(struct file *file, void *arg)
-{
-       vnode_t *vp;
-       char buf1[32] = "SPL VNode Interface Test File\n";
-       char buf2[32] = "";
-       int rc;
-
-       if ((rc = splat_vnode_unlink_all(file, arg, SPLAT_VNODE_TEST4_NAME)))
-               return rc;
-
-       if ((rc = vn_open(SPLAT_VNODE_TEST_FILE_RW1, UIO_SYSSPACE,
-                         FWRITE | FREAD | FCREAT | FEXCL, 0644, &vp, 0, 0))) {
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
-                            "Failed to vn_open test file: %s (%d)\n",
-                            SPLAT_VNODE_TEST_FILE_RW1, rc);
-               goto out;
-       }
-
-        rc = vn_rdwr(UIO_WRITE, vp, buf1, strlen(buf1), 0,
-                     UIO_SYSSPACE, 0, RLIM64_INFINITY, 0, NULL);
-       if (rc) {
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
-                            "Failed vn_rdwr write of test file: %s (%d)\n",
-                            SPLAT_VNODE_TEST_FILE_RW1, rc);
-               goto out2;
-       }
-
-        VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-
-       rc = vn_rename(SPLAT_VNODE_TEST_FILE_RW1,SPLAT_VNODE_TEST_FILE_RW2,0);
-       if (rc) {
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Failed vn_rename "
-                            "%s -> %s (%d)\n",
-                            SPLAT_VNODE_TEST_FILE_RW1,
-                            SPLAT_VNODE_TEST_FILE_RW2, rc);
-               goto out;
-       }
-
-       if ((rc = vn_open(SPLAT_VNODE_TEST_FILE_RW2, UIO_SYSSPACE,
-                         FREAD | FEXCL, 0644, &vp, 0, 0))) {
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
-                            "Failed to vn_open test file: %s (%d)\n",
-                            SPLAT_VNODE_TEST_FILE_RW2, rc);
-               goto out;
-       }
-
-        rc = vn_rdwr(UIO_READ, vp, buf2, strlen(buf1), 0,
-                     UIO_SYSSPACE, 0, RLIM64_INFINITY, 0, NULL);
-       if (rc) {
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
-                            "Failed vn_rdwr read of test file: %s (%d)\n",
-                            SPLAT_VNODE_TEST_FILE_RW2, rc);
-               goto out2;
-       }
-
-       if (strncmp(buf1, buf2, strlen(buf1))) {
-               rc = EINVAL;
-               splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
-                            "Failed strncmp data written does not match "
-                            "data read\nWrote: %sRead:  %s\n", buf1, buf2);
-               goto out2;
-       }
-
-       rc = 0;
-       splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Wrote to %s:  %s",
-                    SPLAT_VNODE_TEST_FILE_RW1, buf1);
-       splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Read from %s: %s",
-                    SPLAT_VNODE_TEST_FILE_RW2, buf2);
-       splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Successfully renamed "
-                    "test file %s -> %s and verified data pattern\n",
-                    SPLAT_VNODE_TEST_FILE_RW1, SPLAT_VNODE_TEST_FILE_RW2);
-out2:
-        VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-out:
-       vn_remove(SPLAT_VNODE_TEST_FILE_RW1, UIO_SYSSPACE, RMFILE);
-       vn_remove(SPLAT_VNODE_TEST_FILE_RW2, UIO_SYSSPACE, RMFILE);
-
-        return -rc;
-} /* splat_vnode_test4() */
-#endif
-
 static int
 splat_vnode_test5(struct file *file, void *arg)
 {
@@ -387,7 +299,6 @@ splat_vnode_test6(struct file *file, void *arg)
                     "fsync'ed test file %s\n", SPLAT_VNODE_TEST_FILE_RW);
 out:
         VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-       vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
 
         return -rc;
 } /* splat_vnode_test6() */
@@ -415,10 +326,6 @@ splat_vnode_init(void)
                        SPLAT_VNODE_TEST2_ID, splat_vnode_test2);
         splat_test_init(sub, SPLAT_VNODE_TEST3_NAME, SPLAT_VNODE_TEST3_DESC,
                        SPLAT_VNODE_TEST3_ID, splat_vnode_test3);
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
-        splat_test_init(sub, SPLAT_VNODE_TEST4_NAME, SPLAT_VNODE_TEST4_DESC,
-                       SPLAT_VNODE_TEST4_ID, splat_vnode_test4);
-#endif
         splat_test_init(sub, SPLAT_VNODE_TEST5_NAME, SPLAT_VNODE_TEST5_DESC,
                        SPLAT_VNODE_TEST5_ID, splat_vnode_test5);
         splat_test_init(sub, SPLAT_VNODE_TEST6_NAME, SPLAT_VNODE_TEST6_DESC,
@@ -434,9 +341,6 @@ splat_vnode_fini(splat_subsystem_t *sub)
 
         splat_test_fini(sub, SPLAT_VNODE_TEST6_ID);
         splat_test_fini(sub, SPLAT_VNODE_TEST5_ID);
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
-        splat_test_fini(sub, SPLAT_VNODE_TEST4_ID);
-#endif
         splat_test_fini(sub, SPLAT_VNODE_TEST3_ID);
         splat_test_fini(sub, SPLAT_VNODE_TEST2_ID);
         splat_test_fini(sub, SPLAT_VNODE_TEST1_ID);
diff --git a/module/splat/splat.mod.c b/module/splat/splat.mod.c
new file mode 100644 (file)
index 0000000..6df5d72
--- /dev/null
@@ -0,0 +1,180 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+       .name = KBUILD_MODNAME,
+       .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+       .exit = cleanup_module,
+#endif
+       .arch = MODULE_ARCH_INIT,
+};
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+       { 0x28950ef1, __VMLINUX_SYMBOL_STR(module_layout) },
+       { 0xb7b69dab, __VMLINUX_SYMBOL_STR(vn_fsync) },
+       { 0x98ab5c8d, __VMLINUX_SYMBOL_STR(kmalloc_caches) },
+       { 0x65e75cb6, __VMLINUX_SYMBOL_STR(__list_del_entry) },
+       { 0xd2b09ce5, __VMLINUX_SYMBOL_STR(__kmalloc) },
+       { 0xf9a482f9, __VMLINUX_SYMBOL_STR(msleep) },
+       { 0xd8b5eb52, __VMLINUX_SYMBOL_STR(z_uncompress) },
+       { 0xd670e116, __VMLINUX_SYMBOL_STR(spl_kmem_alloc_warn) },
+       { 0xf5893abf, __VMLINUX_SYMBOL_STR(up_read) },
+       { 0x4be94236, __VMLINUX_SYMBOL_STR(rwsem_tryupgrade) },
+       { 0xe6da44a, __VMLINUX_SYMBOL_STR(set_normalized_timespec) },
+       { 0xd6ee688f, __VMLINUX_SYMBOL_STR(vmalloc) },
+       { 0x784213a6, __VMLINUX_SYMBOL_STR(pv_lock_ops) },
+       { 0x4b7dcf38, __VMLINUX_SYMBOL_STR(_raw_qspin_lock) },
+       { 0x754d539c, __VMLINUX_SYMBOL_STR(strlen) },
+       { 0xbd6bcd08, __VMLINUX_SYMBOL_STR(crhold) },
+       { 0x19302b91, __VMLINUX_SYMBOL_STR(vn_close) },
+       { 0xcd44eb00, __VMLINUX_SYMBOL_STR(taskq_create) },
+       { 0xce6d7d76, __VMLINUX_SYMBOL_STR(crgetruid) },
+       { 0xc8b57c27, __VMLINUX_SYMBOL_STR(autoremove_wake_function) },
+       { 0x8d7e0b91, __VMLINUX_SYMBOL_STR(vn_getattr) },
+       { 0x930484aa, __VMLINUX_SYMBOL_STR(cpu_online_mask) },
+       { 0x79aa04a2, __VMLINUX_SYMBOL_STR(get_random_bytes) },
+       { 0xb342d16a, __VMLINUX_SYMBOL_STR(spl_kmem_alloc) },
+       { 0xe7813a4, __VMLINUX_SYMBOL_STR(rootdir) },
+       { 0x73a78bc4, __VMLINUX_SYMBOL_STR(downgrade_write) },
+       { 0xa08322cc, __VMLINUX_SYMBOL_STR(taskq_init_ent) },
+       { 0x16837e70, __VMLINUX_SYMBOL_STR(kobj_close_file) },
+       { 0xc0a3d105, __VMLINUX_SYMBOL_STR(find_next_bit) },
+       { 0x89291f9f, __VMLINUX_SYMBOL_STR(kobj_get_filesize) },
+       { 0xbaeceadd, __VMLINUX_SYMBOL_STR(crgetngroups) },
+       { 0xa1f9a134, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rsi) },
+       { 0x3098be9f, __VMLINUX_SYMBOL_STR(crgetgroups) },
+       { 0xeef161aa, __VMLINUX_SYMBOL_STR(groups_free) },
+       { 0x4ed12f73, __VMLINUX_SYMBOL_STR(mutex_unlock) },
+       { 0xda0b5604, __VMLINUX_SYMBOL_STR(vn_rdwr) },
+       { 0x999e8297, __VMLINUX_SYMBOL_STR(vfree) },
+       { 0xea79001e, __VMLINUX_SYMBOL_STR(crgetsuid) },
+       { 0x91715312, __VMLINUX_SYMBOL_STR(sprintf) },
+       { 0x8eb0a41f, __VMLINUX_SYMBOL_STR(tsd_destroy) },
+       { 0xe5779a08, __VMLINUX_SYMBOL_STR(spl_kmem_cache_free) },
+       { 0x53c639a, __VMLINUX_SYMBOL_STR(ddi_strtoul) },
+       { 0xbc32eee7, __VMLINUX_SYMBOL_STR(spl_panic) },
+       { 0x7d11c268, __VMLINUX_SYMBOL_STR(jiffies) },
+       { 0x343a1a8, __VMLINUX_SYMBOL_STR(__list_add) },
+       { 0xe196a9f7, __VMLINUX_SYMBOL_STR(mutex_trylock) },
+       { 0x57a6ccd0, __VMLINUX_SYMBOL_STR(down_read) },
+       { 0x4e2dcaae, __VMLINUX_SYMBOL_STR(spl_kthread_create) },
+       { 0x35225ea3, __VMLINUX_SYMBOL_STR(down_write_trylock) },
+       { 0xde9360ba, __VMLINUX_SYMBOL_STR(totalram_pages) },
+       { 0x72cf8c8b, __VMLINUX_SYMBOL_STR(crgetuid) },
+       { 0x41972754, __VMLINUX_SYMBOL_STR(make_kgid) },
+       { 0xf432dd3d, __VMLINUX_SYMBOL_STR(__init_waitqueue_head) },
+       { 0x71de9b3f, __VMLINUX_SYMBOL_STR(_copy_to_user) },
+       { 0xfe7c4287, __VMLINUX_SYMBOL_STR(nr_cpu_ids) },
+       { 0x6b220bcb, __VMLINUX_SYMBOL_STR(taskq_destroy) },
+       { 0xf23b2e74, __VMLINUX_SYMBOL_STR(misc_register) },
+       { 0xfb578fc5, __VMLINUX_SYMBOL_STR(memset) },
+       { 0xb51262a, __VMLINUX_SYMBOL_STR(spl_kmem_cache_destroy) },
+       { 0x29eec2f0, __VMLINUX_SYMBOL_STR(vmem_size) },
+       { 0x24bd0182, __VMLINUX_SYMBOL_STR(taskq_wait_id) },
+       { 0xb8c7ff88, __VMLINUX_SYMBOL_STR(current_task) },
+       { 0xadd3247e, __VMLINUX_SYMBOL_STR(__cv_signal) },
+       { 0x9a025cd5, __VMLINUX_SYMBOL_STR(__mutex_init) },
+       { 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) },
+       { 0x42f90a31, __VMLINUX_SYMBOL_STR(kthread_stop) },
+       { 0x5d5704d7, __VMLINUX_SYMBOL_STR(crgetrgid) },
+       { 0x449ad0a7, __VMLINUX_SYMBOL_STR(memcmp) },
+       { 0xefcbb1b, __VMLINUX_SYMBOL_STR(set_current_groups) },
+       { 0xe7b00dfb, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r13) },
+       { 0x2e2e322f, __VMLINUX_SYMBOL_STR(taskq_wait) },
+       { 0x9166fada, __VMLINUX_SYMBOL_STR(strncpy) },
+       { 0x5aaafd45, __VMLINUX_SYMBOL_STR(__cv_timedwait) },
+       { 0x5a921311, __VMLINUX_SYMBOL_STR(strncmp) },
+       { 0x9abdea30, __VMLINUX_SYMBOL_STR(mutex_lock) },
+       { 0x5f08dbe, __VMLINUX_SYMBOL_STR(system_taskq) },
+       { 0x589fea99, __VMLINUX_SYMBOL_STR(taskq_dispatch) },
+       { 0x521445b, __VMLINUX_SYMBOL_STR(list_del) },
+       { 0x6c2c274e, __VMLINUX_SYMBOL_STR(spl_vmem_zalloc) },
+       { 0xc5fdef94, __VMLINUX_SYMBOL_STR(call_usermodehelper) },
+       { 0x794379bf, __VMLINUX_SYMBOL_STR(crgetsgid) },
+       { 0x3b4ceb4a, __VMLINUX_SYMBOL_STR(up_write) },
+       { 0xe6e3b875, __VMLINUX_SYMBOL_STR(down_write) },
+       { 0x1b27ac37, __VMLINUX_SYMBOL_STR(crgetgid) },
+       { 0xb75ecbeb, __VMLINUX_SYMBOL_STR(__cv_broadcast) },
+       { 0x3323ccb1, __VMLINUX_SYMBOL_STR(tsd_get) },
+       { 0x5dbd6138, __VMLINUX_SYMBOL_STR(taskq_dispatch_ent) },
+       { 0x9d271bf, __VMLINUX_SYMBOL_STR(spl_kmem_cache_expire) },
+       { 0x6be0bc63, __VMLINUX_SYMBOL_STR(init_task) },
+       { 0xfd07bd40, __VMLINUX_SYMBOL_STR(spl_kmem_alloc_max) },
+       { 0x55de2e28, __VMLINUX_SYMBOL_STR(z_compress_level) },
+       { 0xc50bab05, __VMLINUX_SYMBOL_STR(unregister_shrinker) },
+       { 0x3e43bb06, __VMLINUX_SYMBOL_STR(__cv_wait) },
+       { 0xf76b5740, __VMLINUX_SYMBOL_STR(crfree) },
+       { 0x93fca811, __VMLINUX_SYMBOL_STR(__get_free_pages) },
+       { 0xf0fdf6cb, __VMLINUX_SYMBOL_STR(__stack_chk_fail) },
+       { 0xd62c833f, __VMLINUX_SYMBOL_STR(schedule_timeout) },
+       { 0x1000e51, __VMLINUX_SYMBOL_STR(schedule) },
+       { 0xa202a8e5, __VMLINUX_SYMBOL_STR(kmalloc_order_trace) },
+       { 0x958b84e3, __VMLINUX_SYMBOL_STR(tsd_create) },
+       { 0xf0202554, __VMLINUX_SYMBOL_STR(spl_kmem_cache_create) },
+       { 0x68c4f9da, __VMLINUX_SYMBOL_STR(taskq_wait_outstanding) },
+       { 0xa2724b1e, __VMLINUX_SYMBOL_STR(kobj_read_file) },
+       { 0x2ea2c95c, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rax) },
+       { 0x211f68f1, __VMLINUX_SYMBOL_STR(getnstimeofday64) },
+       { 0xfe172afe, __VMLINUX_SYMBOL_STR(spl_vmem_alloc) },
+       { 0xe65cdceb, __VMLINUX_SYMBOL_STR(wake_up_process) },
+       { 0xd1aa34d4, __VMLINUX_SYMBOL_STR(spl_kmem_cache_alloc) },
+       { 0xbdfb6dbb, __VMLINUX_SYMBOL_STR(__fentry__) },
+       { 0xa3a77c69, __VMLINUX_SYMBOL_STR(down_read_trylock) },
+       { 0x123f82f3, __VMLINUX_SYMBOL_STR(getrawmonotonic64) },
+       { 0x41ec4c1a, __VMLINUX_SYMBOL_STR(kmem_cache_alloc_trace) },
+       { 0xf1e4497, __VMLINUX_SYMBOL_STR(__cv_init) },
+       { 0x4302d0eb, __VMLINUX_SYMBOL_STR(free_pages) },
+       { 0xcf21d241, __VMLINUX_SYMBOL_STR(__wake_up) },
+       { 0xb3f7646e, __VMLINUX_SYMBOL_STR(kthread_should_stop) },
+       { 0x6cd72a01, __VMLINUX_SYMBOL_STR(vn_open) },
+       { 0x36bd681b, __VMLINUX_SYMBOL_STR(groups_alloc) },
+       { 0x1285cb78, __VMLINUX_SYMBOL_STR(tsd_set) },
+       { 0x3896a905, __VMLINUX_SYMBOL_STR(__thread_exit) },
+       { 0x37a0cba, __VMLINUX_SYMBOL_STR(kfree) },
+       { 0x82fe53e1, __VMLINUX_SYMBOL_STR(ddi_strtol) },
+       { 0x69acdf38, __VMLINUX_SYMBOL_STR(memcpy) },
+       { 0x5c8b5ce8, __VMLINUX_SYMBOL_STR(prepare_to_wait) },
+       { 0x9518b623, __VMLINUX_SYMBOL_STR(register_shrinker) },
+       { 0xf68905fd, __VMLINUX_SYMBOL_STR(ddi_strtoull) },
+       { 0xd9ace09, __VMLINUX_SYMBOL_STR(ddi_strtoll) },
+       { 0xfa66f77c, __VMLINUX_SYMBOL_STR(finish_wait) },
+       { 0x4cbbd171, __VMLINUX_SYMBOL_STR(__bitmap_weight) },
+       { 0x2109bc3a, __VMLINUX_SYMBOL_STR(random_get_pseudo_bytes) },
+       { 0xa88e7496, __VMLINUX_SYMBOL_STR(kobj_open_file) },
+       { 0x8a51e16a, __VMLINUX_SYMBOL_STR(groupmember) },
+       { 0x401c592f, __VMLINUX_SYMBOL_STR(spl_version) },
+       { 0x28318305, __VMLINUX_SYMBOL_STR(snprintf) },
+       { 0x6d16801a, __VMLINUX_SYMBOL_STR(spl_kmem_free) },
+       { 0x83aa5282, __VMLINUX_SYMBOL_STR(spl_kmem_cache_reap_now) },
+       { 0x47805038, __VMLINUX_SYMBOL_STR(__thread_create) },
+       { 0x77e2f33, __VMLINUX_SYMBOL_STR(_copy_from_user) },
+       { 0xff749bc, __VMLINUX_SYMBOL_STR(spl_vmem_free) },
+       { 0xd92839b8, __VMLINUX_SYMBOL_STR(taskq_cancel_id) },
+       { 0xa1012e43, __VMLINUX_SYMBOL_STR(misc_deregister) },
+       { 0x2a6e6109, __VMLINUX_SYMBOL_STR(__init_rwsem) },
+       { 0xdb77dd01, __VMLINUX_SYMBOL_STR(taskq_dispatch_delay) },
+       { 0xbccac85e, __VMLINUX_SYMBOL_STR(p0) },
+       { 0x459a3b05, __VMLINUX_SYMBOL_STR(__cv_destroy) },
+       { 0x584f0fa4, __VMLINUX_SYMBOL_STR(vn_openat) },
+       { 0x9b0325e8, __VMLINUX_SYMBOL_STR(spl_kmem_zalloc) },
+       { 0xa2b0e8ef, __VMLINUX_SYMBOL_STR(taskq_empty_ent) },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=spl";
+
+
+MODULE_INFO(srcversion, "FA48BA642E4DB597F2B22E9");
+MODULE_INFO(rhelversion, "7.4");
+#ifdef RETPOLINE
+       MODULE_INFO(retpoline, "Y");
+#endif
index df3914d558a08ed779f703004b28f4566387e86f..44ec84f7d518bb9bf8e219f1509abb5226726a53 100644 (file)
@@ -37,7 +37,28 @@ target_triplet = @target@
 subdir = rpm
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 0c490c0745936876b540f800798c65ae6b647f96..76ee55b349d7e20d4b5f0737b6707277e0b83b55 100644 (file)
@@ -39,7 +39,28 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(srcdir)/spl-dkms.spec.in $(srcdir)/spl-kmod.spec.in \
        $(srcdir)/spl.spec.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index eb38c213cf5bb5a29f8a65ef3825ccc4cfdf3841..a604e1f1f96dce4f6e04334f0759b4be6b9ccafd 100644 (file)
@@ -167,6 +167,12 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1
+- Released 0.7.8-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
 * Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
 - Released 0.7.6-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
index 0338a4761d8de2fec6245e6cc4f4ec08b0543cc3..e7a718ac10bd91baa2263efda5118e1cc1461aeb 100644 (file)
@@ -34,6 +34,12 @@ make install DESTDIR=%{?buildroot}
 %{_mandir}/man5/*
 
 %changelog
+* Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1
+- Released 0.7.8-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
 * Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
 - Released 0.7.6-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
index bd7fb1fe98532889a39f60b84a23b29639e47c6e..39f5ec298396f80a1b9777b13babd67a1c1ec53e 100644 (file)
@@ -39,7 +39,28 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(srcdir)/spl-dkms.spec.in $(srcdir)/spl-kmod.spec.in \
        $(srcdir)/spl.spec.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 0338a4761d8de2fec6245e6cc4f4ec08b0543cc3..e7a718ac10bd91baa2263efda5118e1cc1461aeb 100644 (file)
@@ -34,6 +34,12 @@ make install DESTDIR=%{?buildroot}
 %{_mandir}/man5/*
 
 %changelog
+* Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1
+- Released 0.7.8-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
 * Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
 - Released 0.7.6-1, detailed release notes are available at:
 - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
index c5be641f92c4eec9cf051209d18db9026a05561c..78a0cd7bfee6228749c4be8eb154786146dc818f 100644 (file)
@@ -37,7 +37,28 @@ target_triplet = @target@
 subdir = scripts
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
+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-kmem-cache.m4 \
+       $(top_srcdir)/config/kernel-kuidgid.m4 \
+       $(top_srcdir)/config/kernel-pde-data.m4 \
+       $(top_srcdir)/config/kernel-rw.m4 \
+       $(top_srcdir)/config/kernel-rwsem.m4 \
+       $(top_srcdir)/config/kernel-sched.m4 \
+       $(top_srcdir)/config/kernel-set-fs-pwd.m4 \
+       $(top_srcdir)/config/kernel-shrinker.m4 \
+       $(top_srcdir)/config/kernel-spinlock.m4 \
+       $(top_srcdir)/config/kernel-timer.m4 \
+       $(top_srcdir)/config/kernel-trim-unused-symbols.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
+       $(top_srcdir)/config/kernel-urange-sleep.m4 \
+       $(top_srcdir)/config/kernel-vfs-fsync.m4 \
+       $(top_srcdir)/config/kernel-vfs-getattr.m4 \
+       $(top_srcdir)/config/kernel-wait.m4 \
+       $(top_srcdir)/config/kernel-zlib.m4 \
+       $(top_srcdir)/config/libtool.m4 \
        $(top_srcdir)/config/ltoptions.m4 \
        $(top_srcdir)/config/ltsugar.m4 \
        $(top_srcdir)/config/ltversion.m4 \
index 2b6a85978a21fb800aeed18c933bb34ebe33f731..c963e5e73d90538714434cf3a4f486e54716ab13 100644 (file)
@@ -21,9 +21,6 @@
 /* vfs_getattr wants 2 args */
 #undef HAVE_2ARGS_VFS_GETATTR
 
-/* vfs_unlink() wants 2 args */
-#undef HAVE_2ARGS_VFS_UNLINK
-
 /* zlib_deflate_workspacesize() wants 2 args */
 #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE
 
 /* vfs_getattr wants 3 args */
 #undef HAVE_3ARGS_VFS_GETATTR
 
-/* vfs_unlink() wants 3 args */
-#undef HAVE_3ARGS_VFS_UNLINK
-
 /* vfs_getattr wants 4 args */
 #undef HAVE_4ARGS_VFS_GETATTR
 
-/* vfs_rename() wants 4 args */
-#undef HAVE_4ARGS_VFS_RENAME
-
-/* vfs_rename() wants 5 args */
-#undef HAVE_5ARGS_VFS_RENAME
-
-/* vfs_rename() wants 6 args */
-#undef HAVE_6ARGS_VFS_RENAME
-
 /* kernel defines atomic64_t */
 #undef HAVE_ATOMIC64_T
 
@@ -78,6 +63,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* yes */
+#undef HAVE_IO_SCHEDULE_TIMEOUT
+
 /* kernel_read() take loff_t pointer */
 #undef HAVE_KERNEL_READ_PPOS