]> git.proxmox.com Git - mirror_zfs-debian.git/commitdiff
Merge branch 'upstream'
authorDarik Horn <dajhorn@vanadac.com>
Tue, 28 Feb 2012 01:33:06 +0000 (19:33 -0600)
committerDarik Horn <dajhorn@vanadac.com>
Tue, 28 Feb 2012 01:33:06 +0000 (19:33 -0600)
71 files changed:
Makefile.in
cmd/Makefile.in
cmd/mount_zfs/Makefile.in
cmd/sas_switch_id/Makefile.in
cmd/zdb/Makefile.in
cmd/zfs/Makefile.in
cmd/zinject/Makefile.in
cmd/zpios/Makefile.in
cmd/zpool/Makefile.in
cmd/zpool/zpool_vdev.c
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.in
cmd/zvol_id/Makefile.in
config/rpm.am
config/zfs-build.m4
configure
dracut/90zfs/Makefile.in
dracut/Makefile.in
etc/Makefile.in
etc/init.d/Makefile.in
etc/zfs/Makefile.in
include/Makefile.in
include/linux/Makefile.in
include/sys/Makefile.in
include/sys/dmu_tx.h
include/sys/fm/Makefile.in
include/sys/fm/fs/Makefile.in
include/sys/fs/Makefile.in
include/sys/zfs_debug.h
lib/Makefile.in
lib/libavl/Makefile.in
lib/libefi/Makefile.in
lib/libnvpair/Makefile.in
lib/libshare/Makefile.in
lib/libshare/nfs.c
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.in
lib/libspl/include/ia32/sys/Makefile.in
lib/libspl/include/rpc/Makefile.in
lib/libspl/include/sys/Makefile.in
lib/libspl/include/sys/dktp/Makefile.in
lib/libspl/include/sys/sysevent/Makefile.in
lib/libspl/include/util/Makefile.in
lib/libunicode/Makefile.in
lib/libuutil/Makefile.in
lib/libzfs/Makefile.in
lib/libzfs/libzfs_pool.c
lib/libzpool/Makefile.in
man/Makefile.in
man/man8/Makefile.in
module/zcommon/zpool_prop.c
module/zfs/arc.c
module/zfs/dmu.c
module/zfs/dmu_tx.c
module/zfs/dsl_dataset.c
module/zfs/dsl_pool.c
module/zfs/txg.c
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
udev/Makefile.in
udev/rules.d/Makefile.in
zfs-modules.spec.in
zfs_config.h.in

index 67412c63d2bcc2d05db89d7a0a605fb93cd6d921..bb9bc1d9966aea2edf49b31175157de02426a17c 100644 (file)
@@ -209,6 +209,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
@@ -961,6 +962,7 @@ rpm-common:
                --define "require_spldir $(SPL)" \
                --define "require_splobj $(SPL_OBJ)" \
                --define "require_splver $(SPL_VERSION)" \
+               --define "$(DEBUG_ZFS) 1" \
                --nodeps --rebuild $$rpmpkg || exit 1; \
        cp $$rpmbuild/RPMS/*/* . || exit 1; \
        $(RM) -R $$rpmbuild
index b362f4bc4561dbaebbd213f10064b3fd9b7d940f..a6ab6cca92118ad087805ff0336c06d3267a855d 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 5945bd1c1d272bd601b56354f49ee700a24711d5..94d9d05b16e7d40a8a55263ad1f0341703e79a8c 100644 (file)
@@ -165,6 +165,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 64d07e09badc80f7bc23f29822dff53139897f2c..ba0535f5347e2af50b0b1a19d0657d66330c9e5f 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 0c99ae803fc4a5cd1928024f6a0e559196d9636e..0029e5dfeb4904484be9f847ed537b88e0e2337e 100644 (file)
@@ -167,6 +167,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 71941603dacc102abd1b54993880f3b8af03ffa8..e0ba1e55d9c6cd0a902c2aaaa2921cf4f059b60c 100644 (file)
@@ -167,6 +167,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 08aaa40ed4e4bcdf60bb6b7a807dce509eb62b00..14f1b2a8a08ad81216113d734a0319a436db0b94 100644 (file)
@@ -167,6 +167,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 8ab6938cc4d73fbbff038687a40690562c892c82..b74b113df81efbec1b8c71c7dba4f6c507ece648 100644 (file)
@@ -161,6 +161,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 85d09af7143bc6e8e5afd742e5056baa0b3e215c..bb17ef5b48c2b20bd262f6288a1b9fc0b087ce5c 100644 (file)
@@ -168,6 +168,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index ea887f8b9c77a236dcc727d99f59a5bf77954447..a65847038beed2d02c1767d9e4c5548768e1aed8 100644 (file)
@@ -188,19 +188,10 @@ check_error(int err)
 static int
 check_slice(const char *path, blkid_cache cache, int force, boolean_t isspare)
 {
-       struct stat64 statbuf;
        int err;
 #ifdef HAVE_LIBBLKID
        char *value;
-#endif /* HAVE_LIBBLKID */
-
-       if (stat64(path, &statbuf) != 0) {
-               vdev_error(gettext("cannot stat %s: %s\n"),
-                          path, strerror(errno));
-               return (-1);
-       }
 
-#ifdef HAVE_LIBBLKID
        /* No valid type detected device is safe to use */
        value = blkid_get_tag_value(cache, "TYPE", path);
        if (value == NULL)
index 204efe831a1ab436b46567d169321c40b0fb5c4c..4b6f04c1e7c497128638b24be4ed8cfcdff6547f 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 09ed6de1dcce0196eb196a1b7a9e22382a6bcb80..95e802cce6018593b373e1d932489b99a78dcf62 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index f6c5deda7a2d3233c295bc9be7c3f225995c96ca..d1c8029a20c18ce17bb01c9906a37026b0462ad8 100644 (file)
@@ -167,6 +167,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index f369599ee845c04c777a1083feed2b4cc686b570..5d96d2b0782728f9cf9661c609dc83cbb04bd5b5 100644 (file)
@@ -161,6 +161,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index c352fc582cf9f795ee6b13685fd46efc409ca0f0..d557f77b4a7ff86eb4fa188608f5d26e00319b7b 100644 (file)
@@ -68,6 +68,7 @@ rpm-common:
                --define "require_spldir $(SPL)" \
                --define "require_splobj $(SPL_OBJ)" \
                --define "require_splver $(SPL_VERSION)" \
+               --define "$(DEBUG_ZFS) 1" \
                --nodeps --rebuild $$rpmpkg || exit 1; \
        cp $$rpmbuild/RPMS/*/* . || exit 1; \
        $(RM) -R $$rpmbuild
index aa8d3e5eefa90d4b212f3b5b4dfa0896d396e127..823f332664e4034589bcc69c52a9ea55871f1e5d 100644 (file)
@@ -20,16 +20,20 @@ AC_DEFUN([ZFS_AC_DEBUG], [
                HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror"
                DEBUG_CFLAGS="-DDEBUG -Werror"
                DEBUG_STACKFLAGS="-fstack-check"
+               DEBUG_ZFS="_with_debug"
+               AC_DEFINE(ZFS_DEBUG, 1, [zfs debugging enabled])
        ],
        [
                KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG "
                HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG "
                DEBUG_CFLAGS="-DNDEBUG"
                DEBUG_STACKFLAGS=""
+               DEBUG_ZFS="_without_debug"
        ])
 
        AC_SUBST(DEBUG_CFLAGS)
        AC_SUBST(DEBUG_STACKFLAGS)
+       AC_SUBST(DEBUG_ZFS)
        AC_MSG_RESULT([$enable_debug])
 ])
 
index 0b00c6ddd93b040df5d2596316f5640986994fa8..d63c1a1dc6f2a3f16176d727a19051d0396ae44f 100755 (executable)
--- a/configure
+++ b/configure
@@ -787,6 +787,7 @@ ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
 LIBOBJS
+DEBUG_ZFS
 DEBUG_STACKFLAGS
 DEBUG_CFLAGS
 CONFIG_KERNEL_FALSE
@@ -4835,13 +4836,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:4838: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:4839: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4841: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:4842: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4844: output\"" >&5)
+  (eval echo "\"\$as_me:4845: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6047,7 +6048,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6050 "configure"' > conftest.$ac_ext
+  echo '#line 6051 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7900,11 +7901,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7903: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7904: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7907: \$? = $ac_status" >&5
+   echo "$as_me:7908: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8239,11 +8240,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8242: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8243: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8246: \$? = $ac_status" >&5
+   echo "$as_me:8247: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8344,11 +8345,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8347: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8348: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8351: \$? = $ac_status" >&5
+   echo "$as_me:8352: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8399,11 +8400,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8402: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8403: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8406: \$? = $ac_status" >&5
+   echo "$as_me:8407: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11202,7 +11203,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11205 "configure"
+#line 11206 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11298,7 +11299,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11301 "configure"
+#line 11302 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
                HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror"
                DEBUG_CFLAGS="-DDEBUG -Werror"
                DEBUG_STACKFLAGS="-fstack-check"
+               DEBUG_ZFS="_with_debug"
+
+cat >>confdefs.h <<\_ACEOF
+#define ZFS_DEBUG 1
+_ACEOF
+
 
 else
 
@@ -23855,12 +23862,14 @@ else
                HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG "
                DEBUG_CFLAGS="-DNDEBUG"
                DEBUG_STACKFLAGS=""
+               DEBUG_ZFS="_without_debug"
 
 fi
 
 
 
 
+
        { $as_echo "$as_me:$LINENO: result: $enable_debug" >&5
 $as_echo "$enable_debug" >&6; }
 
index 0725bbc74e3ac95e1abe2a3ce89dba25becfd5f3..470f204002185fc4db88965e38c7cc87ecf36566 100644 (file)
@@ -153,6 +153,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 1544385b40cc2269332942e288a474b617776227..d65ef24ed6e53929057019bad44a5ba3d56abd71 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 14737685d0919bd29c0325b664fbe33c1318b0eb..c8c8821f72b4d231dd659be967078269823016c9 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index cbed8c0acff7fa13fcbe6ec438b1ee586e484bd5..9ff3e2252a11553ed2f533d4da3415a84e645465 100644 (file)
@@ -153,6 +153,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index e161cb455193ae56e0d2ae4894b155e9c3cc21f5..0382b0c7a1c81f64210a468629dd30975fb6f15b 100644 (file)
@@ -153,6 +153,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 9f3972782f9abe689e246e4d1791acc95384c5b3..ad01d2bd668064439d54840780ed507259c99d26 100644 (file)
@@ -213,6 +213,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 9c69b625711af1d445f2639c12dcb78261169125..5dfa3de4b9b939d4e51ddd38c92f54ec40649f0c 100644 (file)
@@ -160,6 +160,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 91fd34b657addfa3f3c2b7cf850ae735b1134198..a2afe1422ecda00bc9adaec1414a9a546b77551f 100644 (file)
@@ -338,6 +338,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index c5ea50fa8d82fdbc3d2a943ae25b06f510761ceb..d87a09beca3e08f1b8099a9a20f2d6d32350110f 100644 (file)
@@ -104,6 +104,31 @@ typedef struct dmu_tx_callback {
        void                    *dcb_data;   /* caller private data */
 } dmu_tx_callback_t;
 
+/*
+ * Used for dmu tx kstat.
+ */
+typedef struct dmu_tx_stats {
+       kstat_named_t dmu_tx_assigned;
+       kstat_named_t dmu_tx_delay;
+       kstat_named_t dmu_tx_error;
+       kstat_named_t dmu_tx_suspended;
+       kstat_named_t dmu_tx_group;
+       kstat_named_t dmu_tx_how;
+       kstat_named_t dmu_tx_memory_reserve;
+       kstat_named_t dmu_tx_memory_reclaim;
+       kstat_named_t dmu_tx_memory_inflight;
+       kstat_named_t dmu_tx_dirty_throttle;
+       kstat_named_t dmu_tx_write_limit;
+       kstat_named_t dmu_tx_quota;
+} dmu_tx_stats_t;
+
+extern dmu_tx_stats_t dmu_tx_stats;
+
+#define DMU_TX_STAT_INCR(stat, val) \
+    atomic_add_64(&dmu_tx_stats.stat.value.ui64, (val));
+#define DMU_TX_STAT_BUMP(stat) \
+    DMU_TX_STAT_INCR(stat, 1);
+
 /*
  * These routines are defined in dmu.h, and are called by the user.
  */
@@ -141,6 +166,9 @@ void dmu_tx_hold_space(dmu_tx_t *tx, uint64_t space);
 #define        DMU_TX_DIRTY_BUF(tx, db)
 #endif
 
+void dmu_tx_init(void);
+void dmu_tx_fini(void);
+
 #ifdef __cplusplus
 }
 #endif
index 0dcd27b10b88e87b5e26982ac6836f06840dd90f..9fe283acfef715e59c880fb07c3f820d8171ed9e 100644 (file)
@@ -198,6 +198,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 03c32de061686b4093d61669269c58e05002116a..bc2db281fdc5490c7012701768c14247d12b9281 100644 (file)
@@ -158,6 +158,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 1f8de0f079ff4628ae552b942cb86293ef8dba6a..00ed240c68f92cf73bdab8870bb95d72c111d6e1 100644 (file)
@@ -158,6 +158,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index e83b66147cfe170df360fa067f4f2f89951d4702..591d0df8f7114e99fc9c08455cc3e68211e971ce 100644 (file)
@@ -36,7 +36,7 @@
 /*
  * ZFS debugging - Always enabled for user space builds.
  */
-#if defined(DEBUG) || !defined(_KERNEL)
+#if !defined(ZFS_DEBUG) && !defined(_KERNEL)
 #define        ZFS_DEBUG
 #endif
 
index daaf306b1c3d603cb75b596c9f390c51f4c3adba..8d57296c6fb388533b0e81b6f2a7d7575ec362dd 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index d28c6acde4fd13e2080ca0d0d5ce2f140d6c8ec3..8c2be9a28218f6b7c94ab2a068a9edb1bb62177e 100644 (file)
@@ -159,6 +159,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 4a935784a47007c593d584ec9d58dbb4a5a3cbea..4f954417b16790e8b77f2eb0015c867a97c065ec 100644 (file)
@@ -159,6 +159,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index e982a68bd85b20dabc85175f0a83714d2b900822..c736a500afa0e72d922f8d93a82a344ce9db6cd3 100644 (file)
@@ -185,6 +185,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 61b61a700d5389a4f0d2554096aa5cc9b1ea88f1..65133e1bfb0026ce5043dcfc4a88c1e673080b41 100644 (file)
@@ -159,6 +159,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 22e306d4370f7619466fcae141b8ab45a722a1ac..56725d27c35665a3ff6a981ae89600875a591e97 100644 (file)
@@ -360,7 +360,7 @@ get_linux_shareopts_cb(const char *key, const char *value, void *cookie)
            strcmp(key, "root_squash") != 0 &&
            strcmp(key, "no_root_squash") != 0 &&
            strcmp(key, "all_squash") != 0 &&
-           strcmp(key, "no_all_squash") != 0 &&
+           strcmp(key, "no_all_squash") != 0 && strcmp(key, "fsid") != 0 &&
            strcmp(key, "anonuid") != 0 && strcmp(key, "anongid") != 0) {
                return SA_SYNTAX_ERR;
        }
index 2d1a8ad170e8cb54e1ce86fa6ccdb53400e3176c..15c6720747637ed8261188ca44be5d1701fc2e9f 100644 (file)
@@ -210,6 +210,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 63b0ef392eb54751e394ee9cf0114d2ba4fef314..6ad997114b5f0d3a11b53502baece5b767ad056a 100644 (file)
@@ -130,6 +130,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 2d43d891884ac583a39bb99f725af8766ae9e222..e68762c879236a73b4f465dad6687774a3988b9d 100644 (file)
@@ -134,6 +134,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index c6d61a5fa458cfa70f94c94c69048576d2333763..6b7f4becad5edf25e2c3eeb516f507ccb3a61dc6 100644 (file)
@@ -134,6 +134,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index ab1d8511ecbe99fd6c01950e968bd1ff37c175ca..480b998be342d369db92343611d65eae9186a653 100644 (file)
@@ -194,6 +194,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index f1f6cb87fd9d8f1fa3202fe39592a6eeecb7b1f4..634415864f910b26ef83ea09f823ea3ec9c589a8 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 70eb6a35dfb66967461a3b04214c191e18da76fc..c00dc4dce8e2b9e116da8d241ec36c6c6a3a21e3 100644 (file)
@@ -156,6 +156,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index a217ab6dc6e14a578223170de1409dac5a86d3f6..3513cb88e73c3c81cf11bca7680b00e4f60bf7c5 100644 (file)
@@ -156,6 +156,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index efa77adc6c373a04048420287ccb8ab1f9250831..c02b3ea75cca2bfc0a5be96bea85978bb611c25d 100644 (file)
@@ -194,6 +194,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 1656d9d4ee82be9379d209914ebf82010b77d1de..cadff828ce4b6a11cf3f9654a948a18be1d6cda5 100644 (file)
@@ -156,6 +156,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 5a37394e3ac12db11cb4a48fe03d9fe9609bb311..3e5f21946bd5d523a6310a76c98097bf9f25e548 100644 (file)
@@ -156,6 +156,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 8894eb57a87c62b2dc830aa9f25e090849360149..3d49a92df0069ef793c2fc4cbbee5d3310a6ead2 100644 (file)
@@ -156,6 +156,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 6135529f8b8524fcccae638d98ba697bfa782402..d05c40a35091d6826e9835ab3276931b2eae6f24 100644 (file)
@@ -159,6 +159,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index e10118898a93f14f0a0029afca81c659617a750c..4aca16091a24a58917b4b461da07282692cc7057 100644 (file)
@@ -188,6 +188,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 84e9e2a7ed7ad364bf38cef1625dc6fbb9879c64..720cf07292ac2b30f8adc33d30773a6c39ce0877 100644 (file)
@@ -189,6 +189,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 1c8286f576159d9ec40e5d0fd6ac7541b59d1d13..4b4d81f7b865cde873e4b6cbfb1cac2e10c2213d 100644 (file)
@@ -443,7 +443,7 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
                                goto error;
                        }
 
-                       if (intval != 0 && (intval < 9 || intval > 12)) {
+                       if (intval != 0 && (intval < 9 || intval > 13)) {
                                zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
                                    "property '%s' number %d is invalid."),
                                    propname, intval);
index 6c6b3b1e7a9163c7e6badac16da1b653749f9ef1..67130c315cdb91384e8efb37328f5b7dc01b13a6 100644 (file)
@@ -201,6 +201,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 1552a216a05383e2d90b30c751b84710c8dd2b62..5a065b740007cf5ec913460827e6f31f512e6ece 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 5d1fcd726fd5205ce9bd03d690ae1b7d504d7e77..5b4ca6154d05121fd4e28212e122df4c04f90e79 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 310598a6f5a0a34fda7ade8744490f9192d6d273..249dd64bbbf0fc345905b76c65eb396e35a2b236 100644 (file)
@@ -89,7 +89,7 @@ zpool_prop_init(void)
 
        /* readonly onetime number properties */
        zprop_register_number(ZPOOL_PROP_ASHIFT, "ashift", 0, PROP_ONETIME,
-           ZFS_TYPE_POOL, "<ashift, 9-12, or 0=default>", "ASHIFT");
+           ZFS_TYPE_POOL, "<ashift, 9-13, or 0=default>", "ASHIFT");
 
        /* default number properties */
        zprop_register_number(ZPOOL_PROP_VERSION, "version", SPA_VERSION,
index 2220c4d9de01e97fadef2be885e7cdaa8115754f..10317b64242b6b540daf042450c1d6f8b3938425 100644 (file)
 #endif
 #include <sys/callb.h>
 #include <sys/kstat.h>
+#include <sys/dmu_tx.h>
 #include <zfs_fletcher.h>
 
 static kmutex_t                arc_reclaim_thr_lock;
@@ -271,6 +272,21 @@ typedef struct arc_stats {
        kstat_named_t arcstat_hdr_size;
        kstat_named_t arcstat_data_size;
        kstat_named_t arcstat_other_size;
+       kstat_named_t arcstat_anon_size;
+       kstat_named_t arcstat_anon_evict_data;
+       kstat_named_t arcstat_anon_evict_metadata;
+       kstat_named_t arcstat_mru_size;
+       kstat_named_t arcstat_mru_evict_data;
+       kstat_named_t arcstat_mru_evict_metadata;
+       kstat_named_t arcstat_mru_ghost_size;
+       kstat_named_t arcstat_mru_ghost_evict_data;
+       kstat_named_t arcstat_mru_ghost_evict_metadata;
+       kstat_named_t arcstat_mfu_size;
+       kstat_named_t arcstat_mfu_evict_data;
+       kstat_named_t arcstat_mfu_evict_metadata;
+       kstat_named_t arcstat_mfu_ghost_size;
+       kstat_named_t arcstat_mfu_ghost_evict_data;
+       kstat_named_t arcstat_mfu_ghost_evict_metadata;
        kstat_named_t arcstat_l2_hits;
        kstat_named_t arcstat_l2_misses;
        kstat_named_t arcstat_l2_feeds;
@@ -336,6 +352,21 @@ static arc_stats_t arc_stats = {
        { "hdr_size",                   KSTAT_DATA_UINT64 },
        { "data_size",                  KSTAT_DATA_UINT64 },
        { "other_size",                 KSTAT_DATA_UINT64 },
+       { "anon_size",                  KSTAT_DATA_UINT64 },
+       { "anon_evict_data",            KSTAT_DATA_UINT64 },
+       { "anon_evict_metadata",        KSTAT_DATA_UINT64 },
+       { "mru_size",                   KSTAT_DATA_UINT64 },
+       { "mru_evict_data",             KSTAT_DATA_UINT64 },
+       { "mru_evict_metadata",         KSTAT_DATA_UINT64 },
+       { "mru_ghost_size",             KSTAT_DATA_UINT64 },
+       { "mru_ghost_evict_data",       KSTAT_DATA_UINT64 },
+       { "mru_ghost_evict_metadata",   KSTAT_DATA_UINT64 },
+       { "mfu_size",                   KSTAT_DATA_UINT64 },
+       { "mfu_evict_data",             KSTAT_DATA_UINT64 },
+       { "mfu_evict_metadata",         KSTAT_DATA_UINT64 },
+       { "mfu_ghost_size",             KSTAT_DATA_UINT64 },
+       { "mfu_ghost_evict_data",       KSTAT_DATA_UINT64 },
+       { "mfu_ghost_evict_metadata",   KSTAT_DATA_UINT64 },
        { "l2_hits",                    KSTAT_DATA_UINT64 },
        { "l2_misses",                  KSTAT_DATA_UINT64 },
        { "l2_feeds",                   KSTAT_DATA_UINT64 },
@@ -3554,6 +3585,7 @@ arc_memory_throttle(uint64_t reserve, uint64_t inflight_data, uint64_t txg)
        } else if (page_load > 0 && arc_reclaim_needed()) {
                /* memory is low, delay before restarting */
                ARCSTAT_INCR(arcstat_memory_throttle_count, 1);
+               DMU_TX_STAT_BUMP(dmu_tx_memory_reclaim);
                return (EAGAIN);
        }
        page_load = 0;
@@ -3569,6 +3601,7 @@ arc_memory_throttle(uint64_t reserve, uint64_t inflight_data, uint64_t txg)
 
        if (inflight_data > available_memory / 4) {
                ARCSTAT_INCR(arcstat_memory_throttle_count, 1);
+               DMU_TX_STAT_BUMP(dmu_tx_memory_inflight);
                return (ERESTART);
        }
 #endif
@@ -3599,8 +3632,10 @@ arc_tempreserve_space(uint64_t reserve, uint64_t txg)
 #endif
        if (reserve > arc_c/4 && !arc_no_grow)
                arc_c = MIN(arc_c_max, reserve * 4);
-       if (reserve > arc_c)
+       if (reserve > arc_c) {
+               DMU_TX_STAT_BUMP(dmu_tx_memory_reserve);
                return (ENOMEM);
+       }
 
        /*
         * Don't count loaned bufs as in flight dirty data to prevent long
@@ -3633,12 +3668,55 @@ arc_tempreserve_space(uint64_t reserve, uint64_t txg)
                    arc_anon->arcs_lsize[ARC_BUFC_METADATA]>>10,
                    arc_anon->arcs_lsize[ARC_BUFC_DATA]>>10,
                    reserve>>10, arc_c>>10);
+               DMU_TX_STAT_BUMP(dmu_tx_dirty_throttle);
                return (ERESTART);
        }
        atomic_add_64(&arc_tempreserve, reserve);
        return (0);
 }
 
+static void
+arc_kstat_update_state(arc_state_t *state, kstat_named_t *size,
+    kstat_named_t *evict_data, kstat_named_t *evict_metadata)
+{
+       size->value.ui64 = state->arcs_size;
+       evict_data->value.ui64 = state->arcs_lsize[ARC_BUFC_DATA];
+       evict_metadata->value.ui64 = state->arcs_lsize[ARC_BUFC_METADATA];
+}
+
+static int
+arc_kstat_update(kstat_t *ksp, int rw)
+{
+       arc_stats_t *as = ksp->ks_data;
+
+       if (rw == KSTAT_WRITE) {
+               return (EACCES);
+       } else {
+               arc_kstat_update_state(arc_anon,
+                   &as->arcstat_anon_size,
+                   &as->arcstat_anon_evict_data,
+                   &as->arcstat_anon_evict_metadata);
+               arc_kstat_update_state(arc_mru,
+                   &as->arcstat_mru_size,
+                   &as->arcstat_mru_evict_data,
+                   &as->arcstat_mru_evict_metadata);
+               arc_kstat_update_state(arc_mru_ghost,
+                   &as->arcstat_mru_ghost_size,
+                   &as->arcstat_mru_ghost_evict_data,
+                   &as->arcstat_mru_ghost_evict_metadata);
+               arc_kstat_update_state(arc_mfu,
+                   &as->arcstat_mfu_size,
+                   &as->arcstat_mfu_evict_data,
+                   &as->arcstat_mfu_evict_metadata);
+               arc_kstat_update_state(arc_mru_ghost,
+                   &as->arcstat_mfu_ghost_size,
+                   &as->arcstat_mfu_ghost_evict_data,
+                   &as->arcstat_mfu_ghost_evict_metadata);
+       }
+
+       return (0);
+}
+
 void
 arc_init(void)
 {
@@ -3767,6 +3845,7 @@ arc_init(void)
 
        if (arc_ksp != NULL) {
                arc_ksp->ks_data = &arc_stats;
+               arc_ksp->ks_update = arc_kstat_update;
                kstat_install(arc_ksp);
        }
 
index 4adbec035a16922d0ec830951b600f8d7eefec05..9702d50224d0de0d4227f4fd59d403fe0d3d0315 100644 (file)
@@ -1861,6 +1861,7 @@ dmu_init(void)
        dnode_init();
        dbuf_init();
        zfetch_init();
+       dmu_tx_init();
        arc_init();
        l2arc_init();
 }
@@ -1870,6 +1871,7 @@ dmu_fini(void)
 {
        l2arc_fini();
        arc_fini();
+       dmu_tx_fini();
        zfetch_fini();
        dbuf_fini();
        dnode_fini();
@@ -1881,6 +1883,8 @@ dmu_fini(void)
 
 #if defined(_KERNEL) && defined(HAVE_SPL)
 EXPORT_SYMBOL(dmu_bonus_hold);
+EXPORT_SYMBOL(dmu_buf_hold_array_by_bonus);
+EXPORT_SYMBOL(dmu_buf_rele_array);
 EXPORT_SYMBOL(dmu_free_range);
 EXPORT_SYMBOL(dmu_read);
 EXPORT_SYMBOL(dmu_write);
index fa64b3af602bb558e824f638e0b3d2f8bf785e7c..17eb52708fbbc827d0c4053d85ba4d799b571968 100644 (file)
 typedef void (*dmu_tx_hold_func_t)(dmu_tx_t *tx, struct dnode *dn,
     uint64_t arg1, uint64_t arg2);
 
+dmu_tx_stats_t dmu_tx_stats = {
+       { "dmu_tx_assigned",            KSTAT_DATA_UINT64 },
+       { "dmu_tx_delay",               KSTAT_DATA_UINT64 },
+       { "dmu_tx_error",               KSTAT_DATA_UINT64 },
+       { "dmu_tx_suspended",           KSTAT_DATA_UINT64 },
+       { "dmu_tx_group",               KSTAT_DATA_UINT64 },
+       { "dmu_tx_how",                 KSTAT_DATA_UINT64 },
+       { "dmu_tx_memory_reserve",      KSTAT_DATA_UINT64 },
+       { "dmu_tx_memory_reclaim",      KSTAT_DATA_UINT64 },
+       { "dmu_tx_memory_inflight",     KSTAT_DATA_UINT64 },
+       { "dmu_tx_dirty_throttle",      KSTAT_DATA_UINT64 },
+       { "dmu_tx_write_limit",         KSTAT_DATA_UINT64 },
+       { "dmu_tx_quota",               KSTAT_DATA_UINT64 },
+};
+
+static kstat_t *dmu_tx_ksp;
 
 dmu_tx_t *
 dmu_tx_create_dd(dsl_dir_t *dd)
@@ -899,10 +915,14 @@ dmu_tx_try_assign(dmu_tx_t *tx, uint64_t txg_how)
 
        ASSERT3U(tx->tx_txg, ==, 0);
 
-       if (tx->tx_err)
+       if (tx->tx_err) {
+               DMU_TX_STAT_BUMP(dmu_tx_error);
                return (tx->tx_err);
+       }
 
        if (spa_suspended(spa)) {
+               DMU_TX_STAT_BUMP(dmu_tx_suspended);
+
                /*
                 * If the user has indicated a blocking failure mode
                 * then return ERESTART which will block in dmu_tx_wait().
@@ -937,6 +957,7 @@ dmu_tx_try_assign(dmu_tx_t *tx, uint64_t txg_how)
                        if (dn->dn_assigned_txg == tx->tx_txg - 1) {
                                mutex_exit(&dn->dn_mtx);
                                tx->tx_needassign_txh = txh;
+                               DMU_TX_STAT_BUMP(dmu_tx_group);
                                return (ERESTART);
                        }
                        if (dn->dn_assigned_txg == 0)
@@ -957,8 +978,10 @@ dmu_tx_try_assign(dmu_tx_t *tx, uint64_t txg_how)
         * NB: This check must be after we've held the dnodes, so that
         * the dmu_tx_unassign() logic will work properly
         */
-       if (txg_how >= TXG_INITIAL && txg_how != tx->tx_txg)
+       if (txg_how >= TXG_INITIAL && txg_how != tx->tx_txg) {
+               DMU_TX_STAT_BUMP(dmu_tx_how);
                return (ERESTART);
+       }
 
        /*
         * If a snapshot has been taken since we made our estimates,
@@ -1000,6 +1023,8 @@ dmu_tx_try_assign(dmu_tx_t *tx, uint64_t txg_how)
                        return (err);
        }
 
+       DMU_TX_STAT_BUMP(dmu_tx_assigned);
+
        return (0);
 }
 
@@ -1382,6 +1407,28 @@ dmu_tx_hold_sa(dmu_tx_t *tx, sa_handle_t *hdl, boolean_t may_grow)
        }
 }
 
+void
+dmu_tx_init(void)
+{
+       dmu_tx_ksp = kstat_create("zfs", 0, "dmu_tx", "misc",
+           KSTAT_TYPE_NAMED, sizeof (dmu_tx_stats) / sizeof (kstat_named_t),
+           KSTAT_FLAG_VIRTUAL);
+
+       if (dmu_tx_ksp != NULL) {
+               dmu_tx_ksp->ks_data = &dmu_tx_stats;
+               kstat_install(dmu_tx_ksp);
+       }
+}
+
+void
+dmu_tx_fini(void)
+{
+       if (dmu_tx_ksp != NULL) {
+               kstat_delete(dmu_tx_ksp);
+               dmu_tx_ksp = NULL;
+       }
+}
+
 #if defined(_KERNEL) && defined(HAVE_SPL)
 EXPORT_SYMBOL(dmu_tx_create);
 EXPORT_SYMBOL(dmu_tx_hold_write);
index 26362c95c1b6447ad5b0e9739eb3d46176bd515d..718c3ad52b27c6a68d46898fa4914358a991acbc 100644 (file)
@@ -3290,6 +3290,8 @@ dsl_dataset_check_quota(dsl_dataset_t *ds, boolean_t check_quota,
                        error = ERESTART;
                else
                        error = EDQUOT;
+
+               DMU_TX_STAT_BUMP(dmu_tx_quota);
        }
        mutex_exit(&ds->ds_lock);
 
index ba42f0bdddb915d86e45f1200f6b3f2276a6f3e0..d428b7ad7398e46e101dbca51a0ef993b4abcf1a 100644 (file)
@@ -517,8 +517,10 @@ dsl_pool_tempreserve_space(dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx)
                reserved = dp->dp_space_towrite[tx->tx_txg & TXG_MASK]
                    + dp->dp_tempreserved[tx->tx_txg & TXG_MASK] / 2;
 
-               if (reserved && reserved > write_limit)
+               if (reserved && reserved > write_limit) {
+                       DMU_TX_STAT_BUMP(dmu_tx_write_limit);
                        return (ERESTART);
+               }
        }
 
        atomic_add_64(&dp->dp_tempreserved[tx->tx_txg & TXG_MASK], space);
index d0d2b1716e88688df4d05857f537d2af7f0feb39..6e64adf9376e5c97a8cfb823caf796c0c9cb6b8f 100644 (file)
@@ -524,6 +524,8 @@ txg_delay(dsl_pool_t *dp, uint64_t txg, int ticks)
                (void) cv_timedwait(&tx->tx_quiesce_more_cv, &tx->tx_sync_lock,
                    timeout);
 
+       DMU_TX_STAT_BUMP(dmu_tx_delay);
+
        mutex_exit(&tx->tx_sync_lock);
 }
 
index a3822d902a42127a1aa548d66ae467cd11e0f249..5c81ae66d80d1be513df71c14e692f1b28b48eab 100644 (file)
@@ -194,6 +194,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index ed4e3192c171aa4485dfcfdf74d399fa8934648a..3ee1ec310e651241e0c61861e47b9b78d7959dd3 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 637dfd7fa2e79852e89e6d47f2fa80f40d1e000f..ee881748ee5ca498a3e36e8fba5de6e89f1406f7 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 6afa78fc0876f1fd1b7c6080fa32a9c51875187a..eed157329560375fa5eee092d9f502b8ce35ce3b 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index ca09273826b0b1cfa74b5a896351f96154bc7b17..75593b81d08228739f8f0b4992a1d58d41280686 100644 (file)
@@ -154,6 +154,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 6b20a9fc6cf57a857e20d61f9e52061d9b13d7f5..b4033bbaba0ee9a1eaab1e3c40f420f72c5118f5 100644 (file)
@@ -169,6 +169,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index fe559cd73ec15690361acdaa1da238069726db87..aba04ee465fe761b99ea5783f83347562ce6e531 100644 (file)
@@ -153,6 +153,7 @@ CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEBUG_CFLAGS = @DEBUG_CFLAGS@
 DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEBUG_ZFS = @DEBUG_ZFS@
 DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
 DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
 DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
index 4c13adf635f9d2f84591fa989814fa9f7b8f71da..f1db8c3a630dc1125b18ee758b821b1608ef2acf 100644 (file)
 %define kobj %{require_kobj}
 %endif
 
+# Set using 'rpmbuild ... --with debug ...', defaults to disabled.
+%if %{defined _with_debug}
+ %define kdebug --enable-debug
+%else
+ %if %{defined _without_debug}
+  %define kdebug --disable-debug
+ %else
+  %define kdebug --disable-debug
+ %endif
+%endif
+
 # SLES:
 %if %{defined suse_version}
  %if %{undefined kver}
@@ -253,7 +264,7 @@ which use %{name}.
 %build
 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
            --with-spl=%{spldir} --with-spl-obj=%{splobj} \
-           --with-config=kernel
+           --with-config=kernel %{kdebug}
 make
 
 %install
index 887f0f7c9bf7827457fa15bc7dbc83e5cf144292..f51bd1868c3a1b62ad9784743b648e36991c013e 100644 (file)
 /* Version number of package */
 #undef VERSION
 
+/* zfs debugging enabled */
+#undef ZFS_DEBUG
+
 /* Define the project alias string. */
 #undef ZFS_META_ALIAS