svn commit: r260487 - in user/gjb/hacking/release-embedded: . bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensolaris/cm...

Glen Barber gjb at FreeBSD.org
Thu Jan 9 17:27:04 UTC 2014


Author: gjb
Date: Thu Jan  9 17:27:00 2014
New Revision: 260487
URL: http://svnweb.freebsd.org/changeset/base/260487

Log:
  MFH: tracking commit (head at r260486)
  
  Sponsored by:	The FreeBSD Foundation

Added:
  user/gjb/hacking/release-embedded/lib/msun/ld128/k_expl.h
     - copied unchanged from r260486, head/lib/msun/ld128/k_expl.h
  user/gjb/hacking/release-embedded/lib/msun/ld80/k_expl.h
     - copied unchanged from r260486, head/lib/msun/ld80/k_expl.h
  user/gjb/hacking/release-embedded/lib/msun/src/e_coshl.c
     - copied unchanged from r260486, head/lib/msun/src/e_coshl.c
  user/gjb/hacking/release-embedded/lib/msun/src/e_sinhl.c
     - copied unchanged from r260486, head/lib/msun/src/e_sinhl.c
  user/gjb/hacking/release-embedded/lib/msun/src/s_tanhl.c
     - copied unchanged from r260486, head/lib/msun/src/s_tanhl.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/globs.c
     - copied unchanged from r260486, head/sbin/fsck_ffs/globs.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c
     - copied unchanged from r260486, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h
     - copied unchanged from r260486, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h
  user/gjb/hacking/release-embedded/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu
     - copied unchanged from r260486, head/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_reg.h
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_reg.h
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_reg_print.c
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_reg_print.c
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_seq.h
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_seq.h
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_reg.h
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_reg.h
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_reg_print.c
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_reg_print.c
  user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_seq.h
     - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_seq.h
  user/gjb/hacking/release-embedded/sys/modules/iwnfw/iwn135/
     - copied from r260486, head/sys/modules/iwnfw/iwn135/
  user/gjb/hacking/release-embedded/sys/sys/sf_base.h
     - copied unchanged from r260486, head/sys/sys/sf_base.h
Deleted:
  user/gjb/hacking/release-embedded/sys/arm/tegra/bus_space.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_pci.c
  user/gjb/hacking/release-embedded/sys/powerpc/include/fdt.h
Modified:
  user/gjb/hacking/release-embedded/COPYRIGHT
  user/gjb/hacking/release-embedded/Makefile.inc1
  user/gjb/hacking/release-embedded/bin/sh/sh.1
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zhack/zhack.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool.8
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
  user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/pyzfs/common/allow.py
  user/gjb/hacking/release-embedded/contrib/binutils/gas/config/tc-ia64.c
  user/gjb/hacking/release-embedded/contrib/binutils/opcodes/ia64-asmtab.c
  user/gjb/hacking/release-embedded/contrib/byacc/CHANGES
  user/gjb/hacking/release-embedded/contrib/byacc/VERSION
  user/gjb/hacking/release-embedded/contrib/byacc/aclocal.m4
  user/gjb/hacking/release-embedded/contrib/byacc/config.guess
  user/gjb/hacking/release-embedded/contrib/byacc/config.sub
  user/gjb/hacking/release-embedded/contrib/byacc/configure
  user/gjb/hacking/release-embedded/contrib/byacc/configure.in
  user/gjb/hacking/release-embedded/contrib/byacc/defs.h
  user/gjb/hacking/release-embedded/contrib/byacc/main.c
  user/gjb/hacking/release-embedded/contrib/byacc/makefile.in
  user/gjb/hacking/release-embedded/contrib/byacc/output.c
  user/gjb/hacking/release-embedded/contrib/byacc/package/byacc.spec
  user/gjb/hacking/release-embedded/contrib/byacc/package/debian/changelog
  user/gjb/hacking/release-embedded/contrib/byacc/reader.c
  user/gjb/hacking/release-embedded/contrib/byacc/skeleton.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/calc.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/calc1.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/calc2.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/calc3.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/code_calc.code.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/code_calc.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/code_error.code.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/code_error.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/error.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/ftp.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/grammar.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/pure_calc.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/pure_error.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc-s.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc2-s.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc2.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc3-s.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc3.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc4-s.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc4.tab.c
  user/gjb/hacking/release-embedded/contrib/byacc/yacc.1
  user/gjb/hacking/release-embedded/contrib/diff/man/diff3.1
  user/gjb/hacking/release-embedded/contrib/gcc/ChangeLog.apple
  user/gjb/hacking/release-embedded/contrib/gcc/attribs.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-common.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-common.h
  user/gjb/hacking/release-embedded/contrib/gcc/c-convert.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-cppbuiltin.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-decl.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-objc-common.h
  user/gjb/hacking/release-embedded/contrib/gcc/c-opts.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-parser.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-pretty-print.c
  user/gjb/hacking/release-embedded/contrib/gcc/c-pretty-print.h
  user/gjb/hacking/release-embedded/contrib/gcc/c-tree.h
  user/gjb/hacking/release-embedded/contrib/gcc/c-typeck.c
  user/gjb/hacking/release-embedded/contrib/gcc/c.opt
  user/gjb/hacking/release-embedded/contrib/gcc/calls.c
  user/gjb/hacking/release-embedded/contrib/gcc/cgraph.h
  user/gjb/hacking/release-embedded/contrib/gcc/cgraphunit.c
  user/gjb/hacking/release-embedded/contrib/gcc/combine.c
  user/gjb/hacking/release-embedded/contrib/gcc/config/darwin.h
  user/gjb/hacking/release-embedded/contrib/gcc/convert.c
  user/gjb/hacking/release-embedded/contrib/gcc/convert.h
  user/gjb/hacking/release-embedded/contrib/gcc/cp/ChangeLog.apple
  user/gjb/hacking/release-embedded/contrib/gcc/cp/ChangeLog.gcc43
  user/gjb/hacking/release-embedded/contrib/gcc/cp/call.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/class.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-gimplify.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-objcp-common.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-objcp-common.h
  user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-tree.h
  user/gjb/hacking/release-embedded/contrib/gcc/cp/decl.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/decl.h
  user/gjb/hacking/release-embedded/contrib/gcc/cp/decl2.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/error.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/init.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/mangle.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/name-lookup.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/name-lookup.h
  user/gjb/hacking/release-embedded/contrib/gcc/cp/parser.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/pt.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/semantics.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/tree.c
  user/gjb/hacking/release-embedded/contrib/gcc/cp/typeck.c
  user/gjb/hacking/release-embedded/contrib/gcc/dbxout.c
  user/gjb/hacking/release-embedded/contrib/gcc/doc/extend.texi
  user/gjb/hacking/release-embedded/contrib/gcc/doc/invoke.texi
  user/gjb/hacking/release-embedded/contrib/gcc/dwarf2.h
  user/gjb/hacking/release-embedded/contrib/gcc/dwarf2out.c
  user/gjb/hacking/release-embedded/contrib/gcc/expmed.c
  user/gjb/hacking/release-embedded/contrib/gcc/expr.c
  user/gjb/hacking/release-embedded/contrib/gcc/fold-const.c
  user/gjb/hacking/release-embedded/contrib/gcc/function.c
  user/gjb/hacking/release-embedded/contrib/gcc/function.h
  user/gjb/hacking/release-embedded/contrib/gcc/ggc-common.c
  user/gjb/hacking/release-embedded/contrib/gcc/ggc.h
  user/gjb/hacking/release-embedded/contrib/gcc/langhooks-def.h
  user/gjb/hacking/release-embedded/contrib/gcc/langhooks.c
  user/gjb/hacking/release-embedded/contrib/gcc/langhooks.h
  user/gjb/hacking/release-embedded/contrib/gcc/stor-layout.c
  user/gjb/hacking/release-embedded/contrib/gcc/stub-objc.c
  user/gjb/hacking/release-embedded/contrib/gcc/targhooks.c
  user/gjb/hacking/release-embedded/contrib/gcc/toplev.c
  user/gjb/hacking/release-embedded/contrib/gcc/tree-gimple.h
  user/gjb/hacking/release-embedded/contrib/gcc/tree-nested.c
  user/gjb/hacking/release-embedded/contrib/gcc/tree.c
  user/gjb/hacking/release-embedded/contrib/gcc/tree.def
  user/gjb/hacking/release-embedded/contrib/gcc/tree.h
  user/gjb/hacking/release-embedded/contrib/gcc/varasm.c
  user/gjb/hacking/release-embedded/contrib/gcclibs/include/libiberty.h
  user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/ChangeLog.apple
  user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/charset.c
  user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/directives.c
  user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/internal.h
  user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/lex.c
  user/gjb/hacking/release-embedded/contrib/gcclibs/libiberty/physmem.c
  user/gjb/hacking/release-embedded/contrib/gperf/doc/gperf.1
  user/gjb/hacking/release-embedded/contrib/gperf/src/options.cc
  user/gjb/hacking/release-embedded/contrib/gperf/src/options.h
  user/gjb/hacking/release-embedded/contrib/gperf/src/options.icc
  user/gjb/hacking/release-embedded/contrib/gperf/src/output.cc
  user/gjb/hacking/release-embedded/contrib/libpcap/ieee80211.h
  user/gjb/hacking/release-embedded/crypto/openssl/ssl/d1_both.c
  user/gjb/hacking/release-embedded/crypto/openssl/ssl/s3_both.c
  user/gjb/hacking/release-embedded/crypto/openssl/ssl/s3_lib.c
  user/gjb/hacking/release-embedded/crypto/openssl/ssl/ssl_locl.h
  user/gjb/hacking/release-embedded/crypto/openssl/ssl/t1_enc.c
  user/gjb/hacking/release-embedded/etc/defaults/rc.conf
  user/gjb/hacking/release-embedded/etc/devd/usb.conf
  user/gjb/hacking/release-embedded/gnu/usr.bin/gdb/kgdb/Makefile
  user/gjb/hacking/release-embedded/gnu/usr.bin/gdb/kgdb/main.c
  user/gjb/hacking/release-embedded/lib/libc/net/sctp_sys_calls.c
  user/gjb/hacking/release-embedded/lib/libcasper/libcasper.c
  user/gjb/hacking/release-embedded/lib/libiconv/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/BIG5/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/EUC/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/EUCTW/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/GBK2K/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/ISO2022/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/JOHAB/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/UES/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/UTF1632/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/UTF7/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/iconv_std/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_parallel/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_serial/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_std/Makefile
  user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_zone/Makefile
  user/gjb/hacking/release-embedded/lib/libkvm/kvm.c
  user/gjb/hacking/release-embedded/lib/libkvm/kvm_ia64.c
  user/gjb/hacking/release-embedded/lib/libnetgraph/sock.c
  user/gjb/hacking/release-embedded/lib/libnv/nvlist.c
  user/gjb/hacking/release-embedded/lib/libprocstat/zfs/Makefile
  user/gjb/hacking/release-embedded/lib/libusb/Makefile
  user/gjb/hacking/release-embedded/lib/libusb/libusb.3
  user/gjb/hacking/release-embedded/lib/libusb/libusb.h
  user/gjb/hacking/release-embedded/lib/libusb/libusb10_io.c
  user/gjb/hacking/release-embedded/lib/msun/Makefile
  user/gjb/hacking/release-embedded/lib/msun/Symbol.map
  user/gjb/hacking/release-embedded/lib/msun/ld128/s_expl.c
  user/gjb/hacking/release-embedded/lib/msun/ld80/s_expl.c
  user/gjb/hacking/release-embedded/lib/msun/man/cosh.3
  user/gjb/hacking/release-embedded/lib/msun/man/sinh.3
  user/gjb/hacking/release-embedded/lib/msun/man/tanh.3
  user/gjb/hacking/release-embedded/lib/msun/src/e_cosh.c
  user/gjb/hacking/release-embedded/lib/msun/src/e_sinh.c
  user/gjb/hacking/release-embedded/lib/msun/src/imprecise.c
  user/gjb/hacking/release-embedded/lib/msun/src/math.h
  user/gjb/hacking/release-embedded/lib/msun/src/s_tanh.c
  user/gjb/hacking/release-embedded/release/picobsd/build/picobsd
  user/gjb/hacking/release-embedded/sbin/camcontrol/camcontrol.8
  user/gjb/hacking/release-embedded/sbin/camcontrol/camcontrol.c
  user/gjb/hacking/release-embedded/sbin/casperd/casperd.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/Makefile
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/dir.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsck.h
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsck_ffs.8
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsutil.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/main.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/pass1.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/pass1b.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/suj.c
  user/gjb/hacking/release-embedded/sbin/fsck_ffs/utilities.c
  user/gjb/hacking/release-embedded/sbin/fsdb/Makefile
  user/gjb/hacking/release-embedded/sbin/geom/class/eli/geom_eli.c
  user/gjb/hacking/release-embedded/sbin/kldload/kldload.c
  user/gjb/hacking/release-embedded/sbin/nvmecontrol/devlist.c
  user/gjb/hacking/release-embedded/sbin/route/route.c
  user/gjb/hacking/release-embedded/share/i18n/esdb/UTF/UTF.alias
  user/gjb/hacking/release-embedded/share/man/man4/netmap.4
  user/gjb/hacking/release-embedded/share/man/man4/run.4
  user/gjb/hacking/release-embedded/share/man/man9/ieee80211_crypto.9
  user/gjb/hacking/release-embedded/share/mk/bsd.sys.mk
  user/gjb/hacking/release-embedded/sys/Makefile
  user/gjb/hacking/release-embedded/sys/amd64/amd64/pmap.c
  user/gjb/hacking/release-embedded/sys/amd64/conf/NOTES
  user/gjb/hacking/release-embedded/sys/amd64/include/vmm.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/amd/amdv.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/ept.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/ept.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmcs.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmcs.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_controls.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_genassym.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_support.S
  user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vhpet.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic_priv.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_ipi.c
  user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_ipi.h
  user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_lapic.c
  user/gjb/hacking/release-embedded/sys/arm/allwinner/a10_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/arm/bus_space_generic.c
  user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c
  user/gjb/hacking/release-embedded/sys/arm/arm/gic.c
  user/gjb/hacking/release-embedded/sys/arm/arm/intr.c
  user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c
  user/gjb/hacking/release-embedded/sys/arm/arm/nexus.c
  user/gjb/hacking/release-embedded/sys/arm/arm/trap.c
  user/gjb/hacking/release-embedded/sys/arm/at91/at91.c
  user/gjb/hacking/release-embedded/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
  user/gjb/hacking/release-embedded/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/conf/AC100
  user/gjb/hacking/release-embedded/sys/arm/conf/ARMADAXP
  user/gjb/hacking/release-embedded/sys/arm/conf/ARNDALE
  user/gjb/hacking/release-embedded/sys/arm/conf/ATMEL
  user/gjb/hacking/release-embedded/sys/arm/conf/AVILA
  user/gjb/hacking/release-embedded/sys/arm/conf/BWCT
  user/gjb/hacking/release-embedded/sys/arm/conf/CAMBRIA
  user/gjb/hacking/release-embedded/sys/arm/conf/CNS11XXNAS
  user/gjb/hacking/release-embedded/sys/arm/conf/COSMIC
  user/gjb/hacking/release-embedded/sys/arm/conf/CUBIEBOARD
  user/gjb/hacking/release-embedded/sys/arm/conf/CUBIEBOARD2
  user/gjb/hacking/release-embedded/sys/arm/conf/DB-78XXX
  user/gjb/hacking/release-embedded/sys/arm/conf/DB-88F5XXX
  user/gjb/hacking/release-embedded/sys/arm/conf/DB-88F6XXX
  user/gjb/hacking/release-embedded/sys/arm/conf/DIGI-CCWMX53
  user/gjb/hacking/release-embedded/sys/arm/conf/DOCKSTAR
  user/gjb/hacking/release-embedded/sys/arm/conf/EA3250
  user/gjb/hacking/release-embedded/sys/arm/conf/EB9200
  user/gjb/hacking/release-embedded/sys/arm/conf/EFIKA_MX
  user/gjb/hacking/release-embedded/sys/arm/conf/ETHERNUT5
  user/gjb/hacking/release-embedded/sys/arm/conf/HL200
  user/gjb/hacking/release-embedded/sys/arm/conf/HL201
  user/gjb/hacking/release-embedded/sys/arm/conf/IMX53-QSB
  user/gjb/hacking/release-embedded/sys/arm/conf/KB920X
  user/gjb/hacking/release-embedded/sys/arm/conf/LN2410SBC
  user/gjb/hacking/release-embedded/sys/arm/conf/NSLU
  user/gjb/hacking/release-embedded/sys/arm/conf/PANDABOARD
  user/gjb/hacking/release-embedded/sys/arm/conf/QILA9G20
  user/gjb/hacking/release-embedded/sys/arm/conf/RADXA
  user/gjb/hacking/release-embedded/sys/arm/conf/RPI-B
  user/gjb/hacking/release-embedded/sys/arm/conf/SAM9260EK
  user/gjb/hacking/release-embedded/sys/arm/conf/SAM9G20EK
  user/gjb/hacking/release-embedded/sys/arm/conf/SAM9X25EK
  user/gjb/hacking/release-embedded/sys/arm/conf/SHEEVAPLUG
  user/gjb/hacking/release-embedded/sys/arm/conf/SN9G45
  user/gjb/hacking/release-embedded/sys/arm/conf/TS7800
  user/gjb/hacking/release-embedded/sys/arm/conf/ZEDBOARD
  user/gjb/hacking/release-embedded/sys/arm/freescale/imx/imx51_ipuv3.c
  user/gjb/hacking/release-embedded/sys/arm/include/fdt.h
  user/gjb/hacking/release-embedded/sys/arm/include/intr.h
  user/gjb/hacking/release-embedded/sys/arm/include/ofw_machdep.h
  user/gjb/hacking/release-embedded/sys/arm/include/psl.h
  user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_gpio.c
  user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_mmc.c
  user/gjb/hacking/release-embedded/sys/arm/lpc/lpcreg.h
  user/gjb/hacking/release-embedded/sys/arm/mv/mv_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/mv/mv_pci.c
  user/gjb/hacking/release-embedded/sys/arm/mv/mvvar.h
  user/gjb/hacking/release-embedded/sys/arm/tegra/files.tegra2
  user/gjb/hacking/release-embedded/sys/arm/tegra/tegra2_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/ti/am335x/am335x_dmtimer.c
  user/gjb/hacking/release-embedded/sys/arm/ti/ti_machdep.c
  user/gjb/hacking/release-embedded/sys/arm/versatile/sp804.c
  user/gjb/hacking/release-embedded/sys/boot/fdt/dts/cubieboard.dts
  user/gjb/hacking/release-embedded/sys/boot/fdt/dts/cubieboard2.dts
  user/gjb/hacking/release-embedded/sys/boot/fdt/dts/dockstar.dts
  user/gjb/hacking/release-embedded/sys/boot/i386/Makefile.inc
  user/gjb/hacking/release-embedded/sys/boot/i386/boot2/Makefile
  user/gjb/hacking/release-embedded/sys/boot/i386/gptboot/Makefile
  user/gjb/hacking/release-embedded/sys/boot/i386/gptzfsboot/Makefile
  user/gjb/hacking/release-embedded/sys/boot/i386/zfsboot/Makefile
  user/gjb/hacking/release-embedded/sys/boot/pc98/boot2/Makefile
  user/gjb/hacking/release-embedded/sys/boot/zfs/zfsimpl.c
  user/gjb/hacking/release-embedded/sys/cam/scsi/scsi_da.c
  user/gjb/hacking/release-embedded/sys/cddl/boot/zfs/zfsimpl.h
  user/gjb/hacking/release-embedded/sys/cddl/compat/opensolaris/sys/time.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/Makefile.files
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  user/gjb/hacking/release-embedded/sys/cddl/dev/dtrace/dtrace_load.c
  user/gjb/hacking/release-embedded/sys/compat/freebsd32/freebsd32_misc.c
  user/gjb/hacking/release-embedded/sys/conf/files
  user/gjb/hacking/release-embedded/sys/conf/kern.pre.mk
  user/gjb/hacking/release-embedded/sys/conf/options
  user/gjb/hacking/release-embedded/sys/conf/options.arm
  user/gjb/hacking/release-embedded/sys/dev/aac/aac.c
  user/gjb/hacking/release-embedded/sys/dev/aacraid/aacraid.c
  user/gjb/hacking/release-embedded/sys/dev/ahci/ahci.c
  user/gjb/hacking/release-embedded/sys/dev/ale/if_ale.c
  user/gjb/hacking/release-embedded/sys/dev/ath/if_ath_rx_edma.c
  user/gjb/hacking/release-embedded/sys/dev/ath/if_ath_tx.c
  user/gjb/hacking/release-embedded/sys/dev/bge/if_bge.c
  user/gjb/hacking/release-embedded/sys/dev/bwi/if_bwi.c
  user/gjb/hacking/release-embedded/sys/dev/bwn/if_bwn.c
  user/gjb/hacking/release-embedded/sys/dev/bxe/bxe.c
  user/gjb/hacking/release-embedded/sys/dev/bxe/ecore_hsi.h
  user/gjb/hacking/release-embedded/sys/dev/bxe/ecore_sp.c
  user/gjb/hacking/release-embedded/sys/dev/cxgbe/adapter.h
  user/gjb/hacking/release-embedded/sys/dev/cxgbe/t4_main.c
  user/gjb/hacking/release-embedded/sys/dev/cxgbe/t4_sge.c
  user/gjb/hacking/release-embedded/sys/dev/e1000/if_em.c
  user/gjb/hacking/release-embedded/sys/dev/e1000/if_igb.c
  user/gjb/hacking/release-embedded/sys/dev/e1000/if_lem.c
  user/gjb/hacking/release-embedded/sys/dev/ed/if_ed.c
  user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_3c503.c
  user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_pccard.c
  user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_rtl80x9.c
  user/gjb/hacking/release-embedded/sys/dev/ed/if_edreg.h
  user/gjb/hacking/release-embedded/sys/dev/ed/if_edvar.h
  user/gjb/hacking/release-embedded/sys/dev/ed/tc5299jreg.h
  user/gjb/hacking/release-embedded/sys/dev/en/midway.c
  user/gjb/hacking/release-embedded/sys/dev/fb/boot_font.c
  user/gjb/hacking/release-embedded/sys/dev/fb/gallant12x22.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_common.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_common.h
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_mips.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_powerpc.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_x86.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/fdtbus.c
  user/gjb/hacking/release-embedded/sys/dev/fdt/simplebus.c
  user/gjb/hacking/release-embedded/sys/dev/ffec/if_ffec.c
  user/gjb/hacking/release-embedded/sys/dev/firewire/if_fwe.c
  user/gjb/hacking/release-embedded/sys/dev/ipw/if_ipw.c
  user/gjb/hacking/release-embedded/sys/dev/ipw/if_ipwvar.h
  user/gjb/hacking/release-embedded/sys/dev/iscsi/icl.c
  user/gjb/hacking/release-embedded/sys/dev/iwi/if_iwi.c
  user/gjb/hacking/release-embedded/sys/dev/iwi/if_iwivar.h
  user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwn.c
  user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwn_devid.h
  user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwnvar.h
  user/gjb/hacking/release-embedded/sys/dev/ixgbe/ixgbe.c
  user/gjb/hacking/release-embedded/sys/dev/malo/if_malo.c
  user/gjb/hacking/release-embedded/sys/dev/mcd/mcd.c
  user/gjb/hacking/release-embedded/sys/dev/mpt/mpt.h
  user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_cam.c
  user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_pci.c
  user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_raid.c
  user/gjb/hacking/release-embedded/sys/dev/mwl/if_mwl.c
  user/gjb/hacking/release-embedded/sys/dev/my/if_my.c
  user/gjb/hacking/release-embedded/sys/dev/nand/nand_id.c
  user/gjb/hacking/release-embedded/sys/dev/nand/nandbus.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/if_em_netmap.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/if_igb_netmap.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/if_lem_netmap.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/if_re_netmap.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/ixgbe_netmap.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_freebsd.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_generic.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_kern.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mbq.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mbq.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mem2.c
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mem2.h
  user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_vale.c
  user/gjb/hacking/release-embedded/sys/dev/nvme/nvme_ctrlr.c
  user/gjb/hacking/release-embedded/sys/dev/oce/oce_if.c
  user/gjb/hacking/release-embedded/sys/dev/ral/if_ral_pci.c
  user/gjb/hacking/release-embedded/sys/dev/ral/rt2560.c
  user/gjb/hacking/release-embedded/sys/dev/ral/rt2661.c
  user/gjb/hacking/release-embedded/sys/dev/ral/rt2860.c
  user/gjb/hacking/release-embedded/sys/dev/scc/scc_dev_z8530.c
  user/gjb/hacking/release-embedded/sys/dev/sound/pci/maestro.c
  user/gjb/hacking/release-embedded/sys/dev/tpm/tpm.c
  user/gjb/hacking/release-embedded/sys/dev/uart/uart_bus_fdt.c
  user/gjb/hacking/release-embedded/sys/dev/uart/uart_dev_lpc.c
  user/gjb/hacking/release-embedded/sys/dev/usb/controller/xhci.c
  user/gjb/hacking/release-embedded/sys/dev/usb/usbdevs
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_rsu.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_rum.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_run.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_runreg.h
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_runvar.h
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_uath.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_upgt.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_ural.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_urtw.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_urtwn.c
  user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_zyd.c
  user/gjb/hacking/release-embedded/sys/dev/vt/hw/vga/vga.c
  user/gjb/hacking/release-embedded/sys/dev/vt/hw/xboxfb/xboxfb.c
  user/gjb/hacking/release-embedded/sys/dev/vt/vt_font.c
  user/gjb/hacking/release-embedded/sys/dev/vxge/vxgehal/vxgehal-ring.c
  user/gjb/hacking/release-embedded/sys/dev/wi/if_wi.c
  user/gjb/hacking/release-embedded/sys/dev/wpi/if_wpi.c
  user/gjb/hacking/release-embedded/sys/dev/wpi/if_wpivar.h
  user/gjb/hacking/release-embedded/sys/fs/nfs/nfs_var.h
  user/gjb/hacking/release-embedded/sys/fs/nfs/nfsrvcache.h
  user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdcache.c
  user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdkrpc.c
  user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdport.c
  user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdsubs.c
  user/gjb/hacking/release-embedded/sys/ia64/include/atomic.h
  user/gjb/hacking/release-embedded/sys/kern/kern_cons.c
  user/gjb/hacking/release-embedded/sys/kern/kern_descrip.c
  user/gjb/hacking/release-embedded/sys/kern/kern_event.c
  user/gjb/hacking/release-embedded/sys/kern/sched_4bsd.c
  user/gjb/hacking/release-embedded/sys/kern/uipc_syscalls.c
  user/gjb/hacking/release-embedded/sys/mips/conf/TP-WN1043ND.hints
  user/gjb/hacking/release-embedded/sys/mips/include/fdt.h
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/Makefile
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/Makefile
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_isa/Makefile
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_pci/Makefile
  user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahd/Makefile
  user/gjb/hacking/release-embedded/sys/modules/ath/Makefile
  user/gjb/hacking/release-embedded/sys/modules/drm2/i915kms/Makefile
  user/gjb/hacking/release-embedded/sys/modules/drm2/radeonkms/Makefile
  user/gjb/hacking/release-embedded/sys/modules/ibcore/Makefile
  user/gjb/hacking/release-embedded/sys/modules/ipfilter/Makefile
  user/gjb/hacking/release-embedded/sys/modules/ipoib/Makefile
  user/gjb/hacking/release-embedded/sys/modules/iwnfw/Makefile
  user/gjb/hacking/release-embedded/sys/modules/mlx4/Makefile
  user/gjb/hacking/release-embedded/sys/modules/mlx4ib/Makefile
  user/gjb/hacking/release-embedded/sys/modules/mlxen/Makefile
  user/gjb/hacking/release-embedded/sys/modules/mthca/Makefile
  user/gjb/hacking/release-embedded/sys/modules/wlan/Makefile
  user/gjb/hacking/release-embedded/sys/net/ieee8023ad_lacp.c
  user/gjb/hacking/release-embedded/sys/net/if.c
  user/gjb/hacking/release-embedded/sys/net/if_lagg.c
  user/gjb/hacking/release-embedded/sys/net/if_lagg.h
  user/gjb/hacking/release-embedded/sys/net/if_tap.c
  user/gjb/hacking/release-embedded/sys/net/if_tun.c
  user/gjb/hacking/release-embedded/sys/net/netmap.h
  user/gjb/hacking/release-embedded/sys/net/netmap_user.h
  user/gjb/hacking/release-embedded/sys/net/radix.c
  user/gjb/hacking/release-embedded/sys/net/radix.h
  user/gjb/hacking/release-embedded/sys/net/radix_mpath.c
  user/gjb/hacking/release-embedded/sys/net/route.c
  user/gjb/hacking/release-embedded/sys/net/route.h
  user/gjb/hacking/release-embedded/sys/net/rtsock.c
  user/gjb/hacking/release-embedded/sys/net/sff8472.h
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211.h
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_adhoc.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_hostap.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_mesh.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_output.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_proto.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_sta.c
  user/gjb/hacking/release-embedded/sys/net80211/ieee80211_wds.c
  user/gjb/hacking/release-embedded/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
  user/gjb/hacking/release-embedded/sys/netgraph/netflow/netflow.c
  user/gjb/hacking/release-embedded/sys/netgraph/netflow/netflow_v9.c
  user/gjb/hacking/release-embedded/sys/netgraph/netflow/ng_netflow.c
  user/gjb/hacking/release-embedded/sys/netgraph/netflow/ng_netflow.h
  user/gjb/hacking/release-embedded/sys/netgraph/ng_base.c
  user/gjb/hacking/release-embedded/sys/netgraph/ng_l2tp.c
  user/gjb/hacking/release-embedded/sys/netinet/if_ether.c
  user/gjb/hacking/release-embedded/sys/netinet/in.c
  user/gjb/hacking/release-embedded/sys/netinet/ip_carp.c
  user/gjb/hacking/release-embedded/sys/netinet/ip_output.c
  user/gjb/hacking/release-embedded/sys/netinet6/in6.c
  user/gjb/hacking/release-embedded/sys/netinet6/in6_ifattach.c
  user/gjb/hacking/release-embedded/sys/netinet6/in6_src.c
  user/gjb/hacking/release-embedded/sys/netinet6/in6_var.h
  user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.c
  user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h
  user/gjb/hacking/release-embedded/sys/netinet6/nd6.c
  user/gjb/hacking/release-embedded/sys/netinet6/nd6_nbr.c
  user/gjb/hacking/release-embedded/sys/netinet6/nd6_rtr.c
  user/gjb/hacking/release-embedded/sys/netpfil/ipfw/ip_fw_table.c
  user/gjb/hacking/release-embedded/sys/netpfil/pf/pf_lb.c
  user/gjb/hacking/release-embedded/sys/nfs/nfs_fha.c
  user/gjb/hacking/release-embedded/sys/nfs/nfs_fha.h
  user/gjb/hacking/release-embedded/sys/ofed/drivers/infiniband/hw/mlx4/Makefile
  user/gjb/hacking/release-embedded/sys/ofed/drivers/net/mlx4/Makefile
  user/gjb/hacking/release-embedded/sys/powerpc/powerpc/bus_machdep.c
  user/gjb/hacking/release-embedded/sys/rpc/svc.c
  user/gjb/hacking/release-embedded/sys/rpc/svc.h
  user/gjb/hacking/release-embedded/sys/rpc/svc_dg.c
  user/gjb/hacking/release-embedded/sys/rpc/svc_vc.c
  user/gjb/hacking/release-embedded/sys/sys/copyright.h
  user/gjb/hacking/release-embedded/sys/sys/event.h
  user/gjb/hacking/release-embedded/sys/sys/pmckern.h
  user/gjb/hacking/release-embedded/sys/sys/user.h
  user/gjb/hacking/release-embedded/sys/ufs/ffs/ffs_alloc.c
  user/gjb/hacking/release-embedded/sys/ufs/ufs/ufs_quota.c
  user/gjb/hacking/release-embedded/sys/vm/vm_page.c
  user/gjb/hacking/release-embedded/sys/vm/vm_page.h
  user/gjb/hacking/release-embedded/sys/vm/vm_phys.c
  user/gjb/hacking/release-embedded/sys/vm/vm_reserv.c
  user/gjb/hacking/release-embedded/sys/x86/include/fdt.h
  user/gjb/hacking/release-embedded/sys/x86/include/ofw_machdep.h
  user/gjb/hacking/release-embedded/sys/x86/x86/mca.c
  user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/Makefile
  user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/dns.c
  user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/grp.c
  user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/pwd.c
  user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/sysctl.c
  user/gjb/hacking/release-embedded/tools/test/dtrace/Makefile
  user/gjb/hacking/release-embedded/tools/tools/net80211/stumbler/stumbler.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/ap/ap.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/assoc/assoc.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/expand/expand.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/prga/prga.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/redir/redir.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/wesside/wesside/wesside.c
  user/gjb/hacking/release-embedded/tools/tools/net80211/wlaninject/wlaninject.c
  user/gjb/hacking/release-embedded/tools/tools/netmap/bridge.c
  user/gjb/hacking/release-embedded/tools/tools/netmap/nm_util.c
  user/gjb/hacking/release-embedded/tools/tools/netmap/nm_util.h
  user/gjb/hacking/release-embedded/tools/tools/netmap/pcap.c
  user/gjb/hacking/release-embedded/tools/tools/netmap/pkt-gen.c
  user/gjb/hacking/release-embedded/tools/tools/netmap/vale-ctl.c
  user/gjb/hacking/release-embedded/usr.bin/find/find.1
  user/gjb/hacking/release-embedded/usr.bin/find/function.c
  user/gjb/hacking/release-embedded/usr.bin/iscsictl/iscsictl.8
  user/gjb/hacking/release-embedded/usr.bin/netstat/if.c
  user/gjb/hacking/release-embedded/usr.bin/netstat/route.c
  user/gjb/hacking/release-embedded/usr.bin/whois/whois.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/Makefile
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/acpi.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/acpi.h
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/atpic.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/bhyve.8
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/bhyverun.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/elcr.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_emul.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_emul.h
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_lpc.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_lpc.h
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pit_8254.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/pm.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/post.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/rtc.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyve/virtio.c
  user/gjb/hacking/release-embedded/usr.sbin/bhyvectl/bhyvectl.c
  user/gjb/hacking/release-embedded/usr.sbin/bsdinstall/scripts/wlanconfig
  user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/BEGEMOT-HAST-MIB.txt
  user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/hast_snmp.c
  user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/hast_tree.def
  user/gjb/hacking/release-embedded/usr.sbin/makefs/cd9660/iso9660_rrip.c
  user/gjb/hacking/release-embedded/usr.sbin/makefs/cd9660/iso9660_rrip.h
  user/gjb/hacking/release-embedded/usr.sbin/mfiutil/Makefile
  user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/kern.c
  user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/lock_proc.c
  user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/lockd.c
Directory Properties:
  user/gjb/hacking/release-embedded/   (props changed)

Modified: user/gjb/hacking/release-embedded/COPYRIGHT
==============================================================================
--- user/gjb/hacking/release-embedded/COPYRIGHT	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/COPYRIGHT	Thu Jan  9 17:27:00 2014	(r260487)
@@ -4,7 +4,7 @@
 The compilation of software known as FreeBSD is distributed under the
 following terms:
 
-Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved.
+Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions

Modified: user/gjb/hacking/release-embedded/Makefile.inc1
==============================================================================
--- user/gjb/hacking/release-embedded/Makefile.inc1	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/Makefile.inc1	Thu Jan  9 17:27:00 2014	(r260487)
@@ -1369,15 +1369,6 @@ kernel-tools: .MAKE
 	mkdir -p ${MAKEOBJDIRPREFIX}/usr
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
 	    -p ${MAKEOBJDIRPREFIX}/usr >/dev/null
-.for _tool in \
-    sys/dev/aic7xxx/aicasm
-	${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
-		cd ${.CURDIR}/${_tool} && \
-		${MAKE} DIRPRFX=${_tool}/ obj && \
-		${MAKE} DIRPRFX=${_tool}/ depend && \
-		${MAKE} DIRPRFX=${_tool}/ all && \
-		${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX} install
-.endfor
 
 #
 # cross-tools: Build cross-building tools

Modified: user/gjb/hacking/release-embedded/bin/sh/sh.1
==============================================================================
--- user/gjb/hacking/release-embedded/bin/sh/sh.1	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/bin/sh/sh.1	Thu Jan  9 17:27:00 2014	(r260487)
@@ -32,7 +32,7 @@
 .\"	from: @(#)sh.1	8.6 (Berkeley) 5/4/95
 .\" $FreeBSD$
 .\"
-.Dd November 1, 2013
+.Dd January 3, 2014
 .Dt SH 1
 .Os
 .Sh NAME
@@ -235,10 +235,16 @@ or
 .Dq Li ||
 operator; or if the command is a pipeline preceded by the
 .Ic !\&
-operator.
+keyword.
 If a shell function is executed and its exit status is explicitly
 tested, all commands of the function are considered to be tested as
 well.
+.Pp
+It is recommended to check for failures explicitly
+instead of relying on
+.Fl e
+because it tends to behave in unexpected ways,
+particularly in larger scripts.
 .It Fl f Li noglob
 Disable pathname expansion.
 .It Fl h Li trackall

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8	Thu Jan  9 17:27:00 2014	(r260487)
@@ -14,11 +14,12 @@
 .\"
 .\" Copyright 2012, Richard Lowe.
 .\" Copyright (c) 2012, Marcelo Araujo <araujo at FreeBSD.org>.
+.\" Copyright (c) 2012 by Delphix. All rights reserved.
 .\" All Rights Reserved.
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 10, 2012
+.Dd December 31, 2013
 .Dt ZDB 8
 .Os
 .Sh NAME
@@ -29,27 +30,35 @@
 .Op Fl CumdibcsDvhLXFPA
 .Op Fl e Op Fl p Ar path...
 .Op Fl t Ar txg
+.Op Fl U Ar cache
+.Op Fl M Ar inflight I/Os
 .Ar poolname
 .Op Ar object ...
 .Nm
 .Op Fl divPA
 .Op Fl e Op Fl p Ar path...
+.Op Fl U Ar cache
 .Ar dataset
 .Op Ar object ...
 .Nm
 .Fl m Op Fl LXFPA
 .Op Fl t Ar txg
 .Op Fl e Op Fl p Ar path...
+.Op Fl U Ar cache
 .Ar poolname
 .Nm
 .Fl R Op Fl A
 .Op Fl e Op Fl p Ar path...
+.Op Fl U Ar cache
+.Ar poolname
 .Ar poolname
 .Ar vdev Ns : Ns Ar offset Ns : Ns Ar size Ns Op Ns : Ns Ar flags
 .Nm
 .Fl S
 .Op Fl AP
 .Op Fl e Op Fl p Ar path...
+.Op Fl U Ar cache
+.Ar poolname
 .Ar poolname
 .Nm
 .Fl l
@@ -205,6 +214,11 @@ flag specifies the path under which devi
 .It Fl F
 Attempt to make an unreadable pool readable by trying progressively older
 transactions.
+.It Fl M Ar inflight I/Os
+Limit the number of outstanding checksum I/Os to the specified value.
+The default value is 200. This option affects the performance of the
+.Fl c
+option.
 .It Fl P
 Print numbers in an unscaled form more amenable to parsing, eg. 1000000 rather
 than 1M.
@@ -218,9 +232,7 @@ options for a means to see the available
 transaction numbers.
 .It Fl U Ar cachefile
 Use a cache file other than
-.Pa /etc/zfs/zpool.cache .
-This option is only valid with
-.Fl C
+.Pa /boot/zfs/zpool.cache .
 .It Fl v
 Enable verbosity.
 Specify multiple times for increased verbosity.

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Thu Jan  9 17:27:00 2014	(r260487)
@@ -89,6 +89,7 @@ extern void dump_intent_log(zilog_t *);
 uint64_t *zopt_object = NULL;
 int zopt_objects = 0;
 libzfs_handle_t *g_zfs;
+uint64_t max_inflight = 200;
 
 /*
  * These libumem hooks provide a reasonable set of defaults for the allocator's
@@ -110,16 +111,17 @@ static void
 usage(void)
 {
 	(void) fprintf(stderr,
-            "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]]"
-            "poolname [object...]\n"
-            "       %s [-divPA] [-e -p path...] dataset [object...]\n"
-            "       %s -m [-LXFPA] [-t txg] [-e [-p path...]]"
-            "poolname [vdev [metaslab...]]\n"
-            "       %s -R [-A] [-e [-p path...]] poolname "
-            "vdev:offset:size[:flags]\n"
-            "       %s -S [-PA] [-e [-p path...]] poolname\n"
-            "       %s -l [-uA] device\n"
-            "       %s -C [-A] [-U config]\n\n",
+	    "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]] "
+	    "[-U config] [-M inflight I/Os] poolname [object...]\n"
+	    "       %s [-divPA] [-e -p path...] [-U config] dataset "
+	    "[object...]\n"
+	    "       %s -m [-LXFPA] [-t txg] [-e [-p path...]] [-U config] "
+	    "poolname [vdev [metaslab...]]\n"
+	    "       %s -R [-A] [-e [-p path...]] poolname "
+	    "vdev:offset:size[:flags]\n"
+	    "       %s -S [-PA] [-e [-p path...]] [-U config] poolname\n"
+	    "       %s -l [-uA] device\n"
+	    "       %s -C [-A] [-U config]\n\n",
 	    cmdname, cmdname, cmdname, cmdname, cmdname, cmdname, cmdname);
 
 	(void) fprintf(stderr, "    Dataset name must include at least one "
@@ -164,6 +166,8 @@ usage(void)
 	(void) fprintf(stderr, "	-P print numbers in parseable form\n");
 	(void) fprintf(stderr, "        -t <txg> -- highest txg to use when "
 	    "searching for uberblocks\n");
+	(void) fprintf(stderr, "        -M <number of inflight I/Os> -- "
+	    "specify the maximum number of checksumming I/Os [default is 200]");
 	(void) fprintf(stderr, "Specify an option more than once (e.g. -bb) "
 	    "to make only that option verbose\n");
 	(void) fprintf(stderr, "Default is to dump everything non-verbosely\n");
@@ -760,7 +764,7 @@ dump_dde(const ddt_t *ddt, const ddt_ent
 		if (ddp->ddp_phys_birth == 0)
 			continue;
 		ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk);
-		sprintf_blkptr(blkbuf, &blk);
+		snprintf_blkptr(blkbuf, sizeof (blkbuf), &blk);
 		(void) printf("index %llx refcnt %llu %s %s\n",
 		    (u_longlong_t)index, (u_longlong_t)ddp->ddp_refcnt,
 		    types[p], blkbuf);
@@ -1020,31 +1024,39 @@ blkid2offset(const dnode_phys_t *dnp, co
 }
 
 static void
-sprintf_blkptr_compact(char *blkbuf, const blkptr_t *bp)
+snprintf_blkptr_compact(char *blkbuf, size_t buflen, const blkptr_t *bp)
 {
 	const dva_t *dva = bp->blk_dva;
 	int ndvas = dump_opt['d'] > 5 ? BP_GET_NDVAS(bp) : 1;
 
 	if (dump_opt['b'] >= 6) {
-		sprintf_blkptr(blkbuf, bp);
+		snprintf_blkptr(blkbuf, buflen, bp);
 		return;
 	}
 
 	blkbuf[0] = '\0';
 
 	for (int i = 0; i < ndvas; i++)
-		(void) sprintf(blkbuf + strlen(blkbuf), "%llu:%llx:%llx ",
+		(void) snprintf(blkbuf + strlen(blkbuf),
+		    buflen - strlen(blkbuf), "%llu:%llx:%llx ",
 		    (u_longlong_t)DVA_GET_VDEV(&dva[i]),
 		    (u_longlong_t)DVA_GET_OFFSET(&dva[i]),
 		    (u_longlong_t)DVA_GET_ASIZE(&dva[i]));
 
-	(void) sprintf(blkbuf + strlen(blkbuf),
-	    "%llxL/%llxP F=%llu B=%llu/%llu",
-	    (u_longlong_t)BP_GET_LSIZE(bp),
-	    (u_longlong_t)BP_GET_PSIZE(bp),
-	    (u_longlong_t)bp->blk_fill,
-	    (u_longlong_t)bp->blk_birth,
-	    (u_longlong_t)BP_PHYSICAL_BIRTH(bp));
+	if (BP_IS_HOLE(bp)) {
+		(void) snprintf(blkbuf + strlen(blkbuf),
+		    buflen - strlen(blkbuf), "B=%llu",
+		    (u_longlong_t)bp->blk_birth);
+	} else {
+		(void) snprintf(blkbuf + strlen(blkbuf),
+		    buflen - strlen(blkbuf),
+		    "%llxL/%llxP F=%llu B=%llu/%llu",
+		    (u_longlong_t)BP_GET_LSIZE(bp),
+		    (u_longlong_t)BP_GET_PSIZE(bp),
+		    (u_longlong_t)bp->blk_fill,
+		    (u_longlong_t)bp->blk_birth,
+		    (u_longlong_t)BP_PHYSICAL_BIRTH(bp));
+	}
 }
 
 static void
@@ -1069,7 +1081,7 @@ print_indirect(blkptr_t *bp, const zbook
 		}
 	}
 
-	sprintf_blkptr_compact(blkbuf, bp);
+	snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp);
 	(void) printf("%s\n", blkbuf);
 }
 
@@ -1084,7 +1096,7 @@ visit_indirect(spa_t *spa, const dnode_p
 
 	print_indirect(bp, zb, dnp);
 
-	if (BP_GET_LEVEL(bp) > 0) {
+	if (BP_GET_LEVEL(bp) > 0 && !BP_IS_HOLE(bp)) {
 		uint32_t flags = ARC_WAIT;
 		int i;
 		blkptr_t *cbp;
@@ -1209,7 +1221,7 @@ dump_dsl_dataset(objset_t *os, uint64_t 
 	zdb_nicenum(ds->ds_compressed_bytes, compressed);
 	zdb_nicenum(ds->ds_uncompressed_bytes, uncompressed);
 	zdb_nicenum(ds->ds_unique_bytes, unique);
-	sprintf_blkptr(blkbuf, &ds->ds_bp);
+	snprintf_blkptr(blkbuf, sizeof (blkbuf), &ds->ds_bp);
 
 	(void) printf("\t\tdir_obj = %llu\n",
 	    (u_longlong_t)ds->ds_dir_obj);
@@ -1254,7 +1266,7 @@ dump_bptree_cb(void *arg, const blkptr_t
 	char blkbuf[BP_SPRINTF_LEN];
 
 	if (bp->blk_birth != 0) {
-		sprintf_blkptr(blkbuf, bp);
+		snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
 		(void) printf("\t%s\n", blkbuf);
 	}
 	return (0);
@@ -1292,7 +1304,7 @@ dump_bpobj_cb(void *arg, const blkptr_t 
 	char blkbuf[BP_SPRINTF_LEN];
 
 	ASSERT(bp->blk_birth != 0);
-	sprintf_blkptr_compact(blkbuf, bp);
+	snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp);
 	(void) printf("\t%s\n", blkbuf);
 	return (0);
 }
@@ -1791,8 +1803,9 @@ dump_dir(objset_t *os)
 	zdb_nicenum(refdbytes, numbuf);
 
 	if (verbosity >= 4) {
-		(void) sprintf(blkbuf, ", rootbp ");
-		(void) sprintf_blkptr(blkbuf + strlen(blkbuf), os->os_rootbp);
+		(void) snprintf(blkbuf, sizeof (blkbuf), ", rootbp ");
+		(void) snprintf_blkptr(blkbuf + strlen(blkbuf),
+		    sizeof (blkbuf) - strlen(blkbuf), os->os_rootbp);
 	} else {
 		blkbuf[0] = '\0';
 	}
@@ -1822,7 +1835,7 @@ dump_dir(objset_t *os)
 	if (verbosity < 2)
 		return;
 
-	if (os->os_rootbp->blk_birth == 0)
+	if (BP_IS_HOLE(os->os_rootbp))
 		return;
 
 	dump_object(os, 0, verbosity, &print_header);
@@ -1863,7 +1876,7 @@ dump_uberblock(uberblock_t *ub, const ch
 	    (u_longlong_t)ub->ub_timestamp, asctime(localtime(&timestamp)));
 	if (dump_opt['u'] >= 3) {
 		char blkbuf[BP_SPRINTF_LEN];
-		sprintf_blkptr(blkbuf, &ub->ub_rootbp);
+		snprintf_blkptr(blkbuf, sizeof (blkbuf), &ub->ub_rootbp);
 		(void) printf("\trootbp = %s\n", blkbuf);
 	}
 	(void) printf(footer ? footer : "");
@@ -2154,16 +2167,68 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t *
 	    bp, NULL, NULL, ZIO_FLAG_CANFAIL)), ==, 0);
 }
 
+/* ARGSUSED */
+static void
+zdb_blkptr_done(zio_t *zio)
+{
+	spa_t *spa = zio->io_spa;
+	blkptr_t *bp = zio->io_bp;
+	int ioerr = zio->io_error;
+	zdb_cb_t *zcb = zio->io_private;
+	zbookmark_t *zb = &zio->io_bookmark;
+
+	zio_data_buf_free(zio->io_data, zio->io_size);
+
+	mutex_enter(&spa->spa_scrub_lock);
+	spa->spa_scrub_inflight--;
+	cv_broadcast(&spa->spa_scrub_io_cv);
+
+	if (ioerr && !(zio->io_flags & ZIO_FLAG_SPECULATIVE)) {
+		char blkbuf[BP_SPRINTF_LEN];
+
+		zcb->zcb_haderrors = 1;
+		zcb->zcb_errors[ioerr]++;
+
+		if (dump_opt['b'] >= 2)
+			snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
+		else
+			blkbuf[0] = '\0';
+
+		(void) printf("zdb_blkptr_cb: "
+		    "Got error %d reading "
+		    "<%llu, %llu, %lld, %llx> %s -- skipping\n",
+		    ioerr,
+		    (u_longlong_t)zb->zb_objset,
+		    (u_longlong_t)zb->zb_object,
+		    (u_longlong_t)zb->zb_level,
+		    (u_longlong_t)zb->zb_blkid,
+		    blkbuf);
+	}
+	mutex_exit(&spa->spa_scrub_lock);
+}
+
+/* ARGSUSED */
 static int
 zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
     const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg)
 {
 	zdb_cb_t *zcb = arg;
-	char blkbuf[BP_SPRINTF_LEN];
 	dmu_object_type_t type;
 	boolean_t is_metadata;
 
-	if (bp == NULL)
+	if (dump_opt['b'] >= 5 && bp->blk_birth > 0) {
+		char blkbuf[BP_SPRINTF_LEN];
+		snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
+		(void) printf("objset %llu object %llu "
+		    "level %lld offset 0x%llx %s\n",
+		    (u_longlong_t)zb->zb_objset,
+		    (u_longlong_t)zb->zb_object,
+		    (longlong_t)zb->zb_level,
+		    (u_longlong_t)blkid2offset(dnp, bp, zb),
+		    blkbuf);
+	}
+
+	if (BP_IS_HOLE(bp))
 		return (0);
 
 	type = BP_GET_TYPE(bp);
@@ -2174,53 +2239,26 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog
 	is_metadata = (BP_GET_LEVEL(bp) != 0 || DMU_OT_IS_METADATA(type));
 
 	if (dump_opt['c'] > 1 || (dump_opt['c'] && is_metadata)) {
-		int ioerr;
 		size_t size = BP_GET_PSIZE(bp);
-		void *data = malloc(size);
+		void *data = zio_data_buf_alloc(size);
 		int flags = ZIO_FLAG_CANFAIL | ZIO_FLAG_SCRUB | ZIO_FLAG_RAW;
 
 		/* If it's an intent log block, failure is expected. */
 		if (zb->zb_level == ZB_ZIL_LEVEL)
 			flags |= ZIO_FLAG_SPECULATIVE;
 
-		ioerr = zio_wait(zio_read(NULL, spa, bp, data, size,
-		    NULL, NULL, ZIO_PRIORITY_ASYNC_READ, flags, zb));
-
-		free(data);
-		if (ioerr && !(flags & ZIO_FLAG_SPECULATIVE)) {
-			zcb->zcb_haderrors = 1;
-			zcb->zcb_errors[ioerr]++;
+		mutex_enter(&spa->spa_scrub_lock);
+		while (spa->spa_scrub_inflight > max_inflight)
+			cv_wait(&spa->spa_scrub_io_cv, &spa->spa_scrub_lock);
+		spa->spa_scrub_inflight++;
+		mutex_exit(&spa->spa_scrub_lock);
 
-			if (dump_opt['b'] >= 2)
-				sprintf_blkptr(blkbuf, bp);
-			else
-				blkbuf[0] = '\0';
-
-			(void) printf("zdb_blkptr_cb: "
-			    "Got error %d reading "
-			    "<%llu, %llu, %lld, %llx> %s -- skipping\n",
-			    ioerr,
-			    (u_longlong_t)zb->zb_objset,
-			    (u_longlong_t)zb->zb_object,
-			    (u_longlong_t)zb->zb_level,
-			    (u_longlong_t)zb->zb_blkid,
-			    blkbuf);
-		}
+		zio_nowait(zio_read(NULL, spa, bp, data, size,
+		    zdb_blkptr_done, zcb, ZIO_PRIORITY_ASYNC_READ, flags, zb));
 	}
 
 	zcb->zcb_readfails = 0;
 
-	if (dump_opt['b'] >= 5) {
-		sprintf_blkptr(blkbuf, bp);
-		(void) printf("objset %llu object %llu "
-		    "level %lld offset 0x%llx %s\n",
-		    (u_longlong_t)zb->zb_objset,
-		    (u_longlong_t)zb->zb_object,
-		    (longlong_t)zb->zb_level,
-		    (u_longlong_t)blkid2offset(dnp, bp, zb),
-		    blkbuf);
-	}
-
 	if (dump_opt['b'] < 5 && isatty(STDERR_FILENO) &&
 	    gethrtime() > zcb->zcb_lastprint + NANOSEC) {
 		uint64_t now = gethrtime();
@@ -2377,7 +2415,7 @@ count_block_cb(void *arg, const blkptr_t
 
 	if (dump_opt['b'] >= 5) {
 		char blkbuf[BP_SPRINTF_LEN];
-		sprintf_blkptr(blkbuf, bp);
+		snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
 		(void) printf("[%s] %s\n",
 		    "deferred free", blkbuf);
 	}
@@ -2433,6 +2471,18 @@ dump_block_stats(spa_t *spa)
 	zcb.zcb_start = zcb.zcb_lastprint = gethrtime();
 	zcb.zcb_haderrors |= traverse_pool(spa, 0, flags, zdb_blkptr_cb, &zcb);
 
+	/*
+	 * If we've traversed the data blocks then we need to wait for those
+	 * I/Os to complete. We leverage "The Godfather" zio to wait on
+	 * all async I/Os to complete.
+	 */
+	if (dump_opt['c']) {
+		(void) zio_wait(spa->spa_async_zio_root);
+		spa->spa_async_zio_root = zio_root(spa, NULL, NULL,
+		    ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE |
+		    ZIO_FLAG_GODFATHER);
+	}
+
 	if (zcb.zcb_haderrors) {
 		(void) printf("\nError counts:\n\n");
 		(void) printf("\t%5s  %s\n", "errno", "count");
@@ -2599,7 +2649,7 @@ zdb_ddt_add_cb(spa_t *spa, zilog_t *zilo
 	avl_index_t where;
 	zdb_ddt_entry_t *zdde, zdde_search;
 
-	if (bp == NULL)
+	if (BP_IS_HOLE(bp))
 		return (0);
 
 	if (dump_opt['S'] > 1 && zb->zb_level == ZB_ROOT_LEVEL) {
@@ -2766,7 +2816,7 @@ zdb_print_blkptr(blkptr_t *bp, int flags
 	if (flags & ZDB_FLAG_BSWAP)
 		byteswap_uint64_array((void *)bp, sizeof (blkptr_t));
 
-	sprintf_blkptr(blkbuf, bp);
+	snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
 	(void) printf("%s\n", blkbuf);
 }
 
@@ -3202,7 +3252,7 @@ main(int argc, char **argv)
 
 	dprintf_setup(&argc, argv);
 
-	while ((c = getopt(argc, argv, "bcdhilmsuCDRSAFLXevp:t:U:P")) != -1) {
+	while ((c = getopt(argc, argv, "bcdhilmM:suCDRSAFLXevp:t:U:P")) != -1) {
 		switch (c) {
 		case 'b':
 		case 'c':
@@ -3231,6 +3281,15 @@ main(int argc, char **argv)
 		case 'v':
 			verbose++;
 			break;
+		case 'M':
+			max_inflight = strtoull(optarg, NULL, 0);
+			if (max_inflight == 0) {
+				(void) fprintf(stderr, "maximum number "
+				    "of inflight I/Os must be greater "
+				    "than 0\n");
+				usage();
+			}
+			break;
 		case 'p':
 			if (searchdirs == NULL) {
 				searchdirs = umem_alloc(sizeof (char *),

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c	Thu Jan  9 17:27:00 2014	(r260487)
@@ -24,6 +24,10 @@
  */
 
 /*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ */
+
+/*
  * Print intent log header and statistics.
  */
 
@@ -47,7 +51,7 @@ print_log_bp(const blkptr_t *bp, const c
 {
 	char blkbuf[BP_SPRINTF_LEN];
 
-	sprintf_blkptr(blkbuf, bp);
+	snprintf_blkptr(blkbuf, sizeof (blkbuf), bp);
 	(void) printf("%s%s\n", prefix, blkbuf);
 }
 
@@ -132,6 +136,7 @@ zil_prt_rec_write(zilog_t *zilog, int tx
 
 	if (lr->lr_common.lrc_reclen == sizeof (lr_write_t)) {
 		(void) printf("%shas blkptr, %s\n", prefix,
+		    !BP_IS_HOLE(bp) &&
 		    bp->blk_birth >= spa_first_txg(zilog->zl_spa) ?
 		    "will claim" : "won't claim");
 		print_log_bp(bp, prefix);
@@ -139,8 +144,6 @@ zil_prt_rec_write(zilog_t *zilog, int tx
 		if (BP_IS_HOLE(bp)) {
 			(void) printf("\t\t\tLSIZE 0x%llx\n",
 			    (u_longlong_t)BP_GET_LSIZE(bp));
-		}
-		if (bp->blk_birth == 0) {
 			bzero(buf, sizeof (buf));
 			(void) printf("%s<hole>\n", prefix);
 			return;
@@ -313,7 +316,8 @@ print_log_block(zilog_t *zilog, blkptr_t
 
 	if (verbose >= 5) {
 		(void) strcpy(blkbuf, ", ");
-		sprintf_blkptr(blkbuf + strlen(blkbuf), bp);
+		snprintf_blkptr(blkbuf + strlen(blkbuf),
+		    sizeof (blkbuf) - strlen(blkbuf), bp);
 	} else {
 		blkbuf[0] = '\0';
 	}
@@ -361,7 +365,7 @@ dump_intent_log(zilog_t *zilog)
 	int verbose = MAX(dump_opt['d'], dump_opt['i']);
 	int i;
 
-	if (zh->zh_log.blk_birth == 0 || verbose < 1)
+	if (BP_IS_HOLE(&zh->zh_log) || verbose < 1)
 		return;
 
 	(void) printf("\n    ZIL header: claim_txg %llu, "

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8	Thu Jan  9 17:27:00 2014	(r260487)
@@ -18,7 +18,7 @@
 .\" information: Portions Copyright [yyyy] [name of copyright owner]
 .\"
 .\" Copyright (c) 2010, Sun Microsystems, Inc. All Rights Reserved.
-.\" Copyright (c) 2012 by Delphix. All rights reserved.
+.\" Copyright (c) 2013 by Delphix. All rights reserved.
 .\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd at FreeBSD.org>
 .\" Copyright (c) 2012, Glen Barber <gjb at FreeBSD.org>
 .\" Copyright (c) 2012, Bryan Drewery <bdrewery at FreeBSD.org>
@@ -26,10 +26,11 @@
 .\" Copyright (c) 2013 Nexenta Systems, Inc. All Rights Reserved.
 .\" Copyright (c) 2013, Joyent, Inc. All rights reserved.
 .\" Copyright (c) 2013, Steven Hartland <smh at FreeBSD.org>
+.\" Copyright (c) 2014, Xin LI <delphij at FreeBSD.org>
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 24, 2013
+.Dd January 2, 2014
 .Dt ZFS 8
 .Os
 .Sh NAME
@@ -57,11 +58,16 @@
 .Cm destroy
 .Op Fl dnpRrv
 .Sm off
-.Ar snapshot
-.Op % Ns Ar snapname
+.Ar filesystem Ns | Ns volume
+.Ns @snap
+.Op % Ns Ar snap
+.Op , Ns Ar snap Op % Ns Ar snap
 .Op , Ns ...
 .Sm on
 .Nm
+.Cm destroy
+.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark
+.Nm
 .Cm snapshot Ns | Ns Cm snap
 .Op Fl r
 .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ...
@@ -168,11 +174,19 @@
 .Cm unshare
 .Fl a | Ar filesystem Ns | Ns Ar mountpoint
 .Nm
+.Cm bookmark
+.Ar snapshot
+.Ar bookmark
+.Nm
 .Cm send
 .Op Fl DnPpRv
 .Op Fl i Ar snapshot | Fl I Ar snapshot
 .Ar snapshot
 .Nm
+.Cm send
+.Op Fl i Ar snapshot Ns | Ns bookmark
+.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
+.Nm
 .Cm receive Ns | Ns Cm recv
 .Op Fl vnFu
 .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
@@ -1654,6 +1668,13 @@ options, as they can destroy large porti
 behavior for mounted file systems in use.
 .It Xo
 .Nm
+.Cm destroy
+.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark
+.Xc
+.Pp
+The given bookmark is destroyed.
+.It Xo
+.Nm
 .Cm snapshot Ns | Ns Cm snap
 .Op Fl r
 .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ...
@@ -1686,14 +1707,24 @@ Roll back the given dataset to a previou
 back, all data that has changed since the snapshot is discarded, and the
 dataset reverts to the state at the time of the snapshot. By default, the
 command refuses to roll back to a snapshot other than the most recent one. In
-order to do so, all intermediate snapshots must be destroyed by specifying the
+order to do so, all intermediate snapshots and bookmarks must be destroyed
+by specifying the
 .Fl r
 option.
+.Pp
+The
+.Fl rR
+options do not recursively destroy the child snapshots of a
+recursive snapshot.
+Only direct snapshots of the specified filesystem
+are destroyed by either of these options.
+To completely roll back a
+recursive snapshot, you must rollback the individual child snapshots.
 .Bl -tag -width indent
 .It Fl r
-Recursively destroy any snapshots more recent than the one specified.
+Destroy any snapshots and bookmarks more recent than the one specified.
 .It Fl R
-Recursively destroy any more recent snapshots, as well as any clones of those
+Destroy any more recent snapshots and bookmarks, as well as any clones of those
 snapshots.
 .It Fl f
 Used with the
@@ -1868,7 +1899,7 @@ syntax.
 A comma-separated list of types to display, where
 .Ar type
 is one of
-.Sy filesystem , snapshot , snap,  volume , No or Sy all .
+.Sy filesystem , snapshot , snap , volume , bookmark , No or Sy all .
 For example, specifying
 .Fl t Cm snapshot
 displays only snapshots.
@@ -1965,7 +1996,7 @@ sections.
 The special value
 .Cm all
 can be used to display all properties that apply to the given dataset's type
-(filesystem, volume, or snapshot).
+(filesystem, volume, snapshot, or bookmark).
 .Bl -tag -width indent
 .It Fl r
 Recursively display properties for any children.
@@ -2283,6 +2314,26 @@ file system shared on the system.
 .El
 .It Xo
 .Nm
+.Cm bookmark
+.Ar snapshot
+.Ar bookmark
+.Xc
+.Pp
+Creates a bookmark of the given snapshot.
+Bookmarks mark the point in time
+when the snapshot was created, and can be used as the incremental source for
+a
+.Qq Nm Cm send
+command.
+.Pp
+This feature must be enabled to be used.
+See
+.Xr zpool-features 7
+for details on ZFS feature flags and the
+.Sy bookmark
+feature.
+.It Xo
+.Nm
 .Cm send
 .Op Fl DnPpRv
 .Op Fl i Ar snapshot | Fl I Ar snapshot
@@ -2301,17 +2352,15 @@ a file or to a different system (for exa
 By default, a full stream is generated.
 .Bl -tag -width indent
 .It Fl i Ar snapshot
-Generate an incremental stream from the
-.Fl i Ar snapshot
-to the last
-.Ar snapshot .
-The incremental source (the
-.Fl i Ar snapshot )
-can be specified as the last component of the snapshot name (for example, the
-part after the
-.Sy @ ) ,
-and it is assumed to be from the same file system as the last
-.Ar snapshot .
+Generate an incremental stream from the first
+.Ar snapshot Pq the incremental source
+to the second
+.Ar snapshot Pq the incremental target .
+The incremental source can be specified as the last component of the
+snapshot name
+.Pq the Em @ No character and following
+and
+it is assumed to be from the same file system as the incremental target.
 .Pp
 If the destination is a clone, the source may be the origin snapshot, which
 must be fully specified (for example,
@@ -2319,15 +2368,16 @@ must be fully specified (for example,
 not just
 .Cm @origin ) .
 .It Fl I Ar snapshot
-Generate a stream package that sends all intermediary snapshots from the
-.Fl I Ar snapshot
-to the last
+Generate a stream package that sends all intermediary snapshots from the first
+.Ar snapshot
+to the second
 .Ar snapshot .
 For example,
 .Ic -I @a fs at d
 is similar to
 .Ic -i @a fs at b; -i @b fs at c; -i @c fs at d .
-The incremental source snapshot may be specified as with the
+The incremental
+source may be specified as with the
 .Fl i
 option.
 .It Fl R
@@ -2380,6 +2430,35 @@ on future versions of
 .Tn ZFS .
 .It Xo
 .Nm
+.Cm send
+.Op Fl i Ar snapshot Ns | Ns Ar bookmark
+.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
+.Xc
+.Pp
+Generate a send stream, which may be of a filesystem, and may be
+incremental from a bookmark.
+If the destination is a filesystem or volume,
+the pool must be read-only, or the filesystem must not be mounted.
+When the
+stream generated from a filesystem or volume is received, the default snapshot
+name will be
+.Pq --head-- .
+.Bl -tag -width indent
+.It Fl i Ar snapshot Ns | Ns bookmark
+Generate an incremental send stream.
+The incremental source must be an earlier
+snapshot in the destination's history.
+It will commonly be an earlier
+snapshot in the destination's filesystem, in which case it can be
+specified as the last component of the name
+.Pq the Em # No or Em @ No character and following .
+.Pp
+If the incremental target is a clone, the incremental source can
+be the origin snapshot, or an earlier snapshot in the origin's filesystem,
+or the origin's origin, etc.
+.El
+.It Xo
+.Nm
 .Cm receive Ns | Ns Cm recv
 .Op Fl vnFu
 .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Thu Jan  9 17:27:00 2014	(r260487)
@@ -24,6 +24,7 @@
  * Copyright (c) 2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
  * All rights reserved.
  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  */
 
 #include <libintl.h>
@@ -72,7 +73,7 @@ uu_avl_pool_t *avl_pool;
  * Include snaps if they were requested or if this a zfs list where types
  * were not specified and the "listsnapshots" property is set on this pool.
  */
-static int
+static boolean_t
 zfs_include_snapshots(zfs_handle_t *zhp, callback_data_t *cb)
 {
 	zpool_handle_t *zph;
@@ -92,8 +93,9 @@ static int
 zfs_callback(zfs_handle_t *zhp, void *data)
 {
 	callback_data_t *cb = data;
-	int dontclose = 0;
-	int include_snaps = zfs_include_snapshots(zhp, cb);
+	boolean_t dontclose = B_FALSE;
+	boolean_t include_snaps = zfs_include_snapshots(zhp, cb);
+	boolean_t include_bmarks = (cb->cb_types & ZFS_TYPE_BOOKMARK);
 
 	if ((zfs_get_type(zhp) & cb->cb_types) ||
 	    ((zfs_get_type(zhp) == ZFS_TYPE_SNAPSHOT) && include_snaps)) {
@@ -119,7 +121,7 @@ zfs_callback(zfs_handle_t *zhp, void *da
 				}
 			}
 			uu_avl_insert(cb->cb_avl, node, idx);
-			dontclose = 1;
+			dontclose = B_TRUE;
 		} else {
 			free(node);
 		}
@@ -134,11 +136,14 @@ zfs_callback(zfs_handle_t *zhp, void *da
 		cb->cb_depth++;
 		if (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM)
 			(void) zfs_iter_filesystems(zhp, zfs_callback, data);
-		if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps) {
+		if (((zfs_get_type(zhp) & (ZFS_TYPE_SNAPSHOT |
+		    ZFS_TYPE_BOOKMARK)) == 0) && include_snaps)
 			(void) zfs_iter_snapshots(zhp,
 			    (cb->cb_flags & ZFS_ITER_SIMPLE) != 0, zfs_callback,
 			    data);
-		}
+		if (((zfs_get_type(zhp) & (ZFS_TYPE_SNAPSHOT |
+		    ZFS_TYPE_BOOKMARK)) == 0) && include_bmarks)
+			(void) zfs_iter_bookmarks(zhp, zfs_callback, data);
 		cb->cb_depth--;
 	}
 

Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Thu Jan  9 15:55:55 2014	(r260486)
+++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Thu Jan  9 17:27:00 2014	(r260487)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  * Copyright 2012 Milan Jurik. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  * Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
@@ -107,6 +107,7 @@ static int zfs_do_release(int argc, char
 static int zfs_do_diff(int argc, char **argv);
 static int zfs_do_jail(int argc, char **argv);
 static int zfs_do_unjail(int argc, char **argv);
+static int zfs_do_bookmark(int argc, char **argv);
 
 /*
  * Enable a reasonable set of defaults for libumem debugging on DEBUG builds.
@@ -155,6 +156,7 @@ typedef enum {
 	HELP_HOLDS,
 	HELP_RELEASE,
 	HELP_DIFF,
+	HELP_BOOKMARK,
 } zfs_help_t;
 
 typedef struct zfs_command {
@@ -181,6 +183,7 @@ static zfs_command_t command_table[] = {
 	{ "clone",	zfs_do_clone,		HELP_CLONE		},
 	{ "promote",	zfs_do_promote,		HELP_PROMOTE		},
 	{ "rename",	zfs_do_rename,		HELP_RENAME		},
+	{ "bookmark",	zfs_do_bookmark,	HELP_BOOKMARK		},
 	{ NULL },
 	{ "list",	zfs_do_list,		HELP_LIST		},
 	{ NULL },
@@ -231,11 +234,12 @@ get_usage(zfs_help_t idx)
 	case HELP_DESTROY:
 		return (gettext("\tdestroy [-fnpRrv] <filesystem|volume>\n"
 		    "\tdestroy [-dnpRrv] "
-		    "<snapshot>[%<snapname>][,...]\n"));
+		    "<filesystem|volume>@<snap>[%<snap>][,...]\n"
+		    "\tdestroy <filesystem|volume>#<bookmark>\n"));
 	case HELP_GET:
 		return (gettext("\tget [-rHp] [-d max] "
-		    "[-o \"all\" | field[,...]] [-t type[,...]] "
-		    "[-s source[,...]]\n"
+		    "[-o \"all\" | field[,...]]\n"
+		    "\t    [-t type[,...]] [-s source[,...]]\n"
 		    "\t    <\"all\" | property[,...]> "
 		    "[filesystem|volume|snapshot] ...\n"));
 	case HELP_INHERIT:
@@ -264,15 +268,16 @@ get_usage(zfs_help_t idx)
 	case HELP_RENAME:
 		return (gettext("\trename [-f] <filesystem|volume|snapshot> "
 		    "<filesystem|volume|snapshot>\n"
-		    "\trename [-f] -p <filesystem|volume> "
-		    "<filesystem|volume>\n"
+		    "\trename [-f] -p <filesystem|volume> <filesystem|volume>\n"
 		    "\trename -r <snapshot> <snapshot>\n"
 		    "\trename -u [-p] <filesystem> <filesystem>"));
 	case HELP_ROLLBACK:
 		return (gettext("\trollback [-rRf] <snapshot>\n"));
 	case HELP_SEND:
-		return (gettext("\tsend [-DnPpRv] "
-		    "[-i snapshot | -I snapshot] <snapshot>\n"));
+		return (gettext("\tsend [-DnPpRv] [-[iI] snapshot] "
+		    "<snapshot>\n"
+		    "\tsend [-i snapshot|bookmark] "
+		    "<filesystem|volume|snapshot>\n"));
 	case HELP_SET:
 		return (gettext("\tset <property=value> "
 		    "<filesystem|volume|snapshot> ...\n"));
@@ -280,7 +285,7 @@ get_usage(zfs_help_t idx)
 		return (gettext("\tshare <-a | filesystem>\n"));
 	case HELP_SNAPSHOT:
 		return (gettext("\tsnapshot|snap [-r] [-o property=value] ... "
-		    "<filesystem at snapname|volume at snapname> ...\n"));
+		    "<filesystem|volume>@<snap> ...\n"));
 	case HELP_UNMOUNT:
 		return (gettext("\tunmount|umount [-f] "
 		    "<-a | filesystem|mountpoint>\n"));
@@ -309,11 +314,13 @@ get_usage(zfs_help_t idx)
 		    "<filesystem|volume>\n"));
 	case HELP_USERSPACE:
 		return (gettext("\tuserspace [-Hinp] [-o field[,...]] "
-		    "[-s field]...\n\t    [-S field]... [-t type[,...]] "
+		    "[-s field] ...\n"
+		    "\t    [-S field] ... [-t type[,...]] "
 		    "<filesystem|snapshot>\n"));
 	case HELP_GROUPSPACE:
 		return (gettext("\tgroupspace [-Hinp] [-o field[,...]] "
-		    "[-s field]...\n\t    [-S field]... [-t type[,...]] "
+		    "[-s field] ...\n"
+		    "\t    [-S field] ... [-t type[,...]] "
 		    "<filesystem|snapshot>\n"));
 	case HELP_HOLD:
 		return (gettext("\thold [-r] <tag> <snapshot> ...\n"));
@@ -324,6 +331,8 @@ get_usage(zfs_help_t idx)
 	case HELP_DIFF:
 		return (gettext("\tdiff [-FHt] <snapshot> "
 		    "[snapshot|filesystem]\n"));
+	case HELP_BOOKMARK:
+		return (gettext("\tbookmark <snapshot> <bookmark>\n"));
 	}
 
 	abort();
@@ -926,6 +935,7 @@ typedef struct destroy_cbdata {
 	char		*cb_prevsnap;
 	int64_t		cb_snapused;
 	char		*cb_snapspec;
+	char		*cb_bookmark;
 } destroy_cbdata_t;
 
 /*
@@ -1195,7 +1205,7 @@ zfs_do_destroy(int argc, char **argv)
 	int err = 0;
 	int c;
 	zfs_handle_t *zhp = NULL;
-	char *at;
+	char *at, *pound;
 	zfs_type_t type = ZFS_TYPE_DATASET;
 
 	/* check options */
@@ -1247,6 +1257,7 @@ zfs_do_destroy(int argc, char **argv)
 	}
 
 	at = strchr(argv[0], '@');
+	pound = strchr(argv[0], '#');
 	if (at != NULL) {
 
 		/* Build the list of snaps to destroy in cb_nvl. */
@@ -1308,6 +1319,46 @@ zfs_do_destroy(int argc, char **argv)
 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list