Date: Thu, 9 Jan 2014 17:27:02 +0000 (UTC) From: Glen Barber <gjb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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... Message-ID: <201401091727.s09HR2P2039379@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@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(×tamp))); 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@FreeBSD.org> .\" Copyright (c) 2012, Glen Barber <gjb@FreeBSD.org> .\" Copyright (c) 2012, Bryan Drewery <bdrewery@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@FreeBSD.org> +.\" Copyright (c) 2014, Xin LI <delphij@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@d is similar to .Ic -i @a fs@b; -i @b fs@c; -i @c fs@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@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@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@snapname|volume@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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401091727.s09HR2P2039379>