svn commit: r228210 - in user/attilio/vmcontention: . cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libzfs/comm...

Attilio Rao attilio at FreeBSD.org
Fri Dec 2 21:45:46 UTC 2011


Author: attilio
Date: Fri Dec  2 21:45:46 2011
New Revision: 228210
URL: http://svn.freebsd.org/changeset/base/228210

Log:
  MFC

Added:
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
     - copied unchanged from r228209, head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
  user/attilio/vmcontention/share/man/man4/ffclock.4
     - copied unchanged from r228209, head/share/man/man4/ffclock.4
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2s.c
     - copied unchanged from r228209, head/sys/contrib/dev/acpica/compiler/aslrestype2s.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmresrcl2.c
     - copied unchanged from r228209, head/sys/contrib/dev/acpica/disassembler/dmresrcl2.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/actbl3.h
     - copied unchanged from r228209, head/sys/contrib/dev/acpica/include/actbl3.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/os_specific/
     - copied from r228209, head/sys/contrib/dev/acpica/os_specific/
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsserial.c
     - copied unchanged from r228209, head/sys/contrib/dev/acpica/resources/rsserial.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/utilities/utxfmutex.c
     - copied unchanged from r228209, head/sys/contrib/dev/acpica/utilities/utxfmutex.c
  user/attilio/vmcontention/tools/build/options/WITH_CTF
     - copied unchanged from r228209, head/tools/build/options/WITH_CTF
  user/attilio/vmcontention/tools/build/options/WITH_LIBCPLUSPLUS
     - copied unchanged from r228209, head/tools/build/options/WITH_LIBCPLUSPLUS
  user/attilio/vmcontention/tools/regression/pipe/pipe-ino.c
     - copied unchanged from r228209, head/tools/regression/pipe/pipe-ino.c
  user/attilio/vmcontention/tools/regression/usr.bin/make/execution/
     - copied from r228209, head/tools/regression/usr.bin/make/execution/
Deleted:
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_graph.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/osunixxf.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/tools/
Modified:
  user/attilio/vmcontention/Makefile.inc1
  user/attilio/vmcontention/UPDATING
  user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8
  user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8
  user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c
  user/attilio/vmcontention/cddl/lib/libzfs/Makefile
  user/attilio/vmcontention/etc/rc.d/kld
  user/attilio/vmcontention/kerberos5/usr.bin/kadmin/Makefile
  user/attilio/vmcontention/kerberos5/usr.sbin/ktutil/Makefile
  user/attilio/vmcontention/lib/libc/gen/syslog.c
  user/attilio/vmcontention/lib/libc/locale/duplocale.3
  user/attilio/vmcontention/lib/libc/locale/freelocale.3
  user/attilio/vmcontention/lib/libc/locale/localeconv.3
  user/attilio/vmcontention/lib/libc/locale/newlocale.3
  user/attilio/vmcontention/lib/libc/locale/querylocale.3
  user/attilio/vmcontention/lib/libc/locale/uselocale.3
  user/attilio/vmcontention/lib/libc/locale/xlocale.3
  user/attilio/vmcontention/lib/libc/string/strcasecmp.c
  user/attilio/vmcontention/lib/libc/string/strcmp.c
  user/attilio/vmcontention/lib/libc/string/strcoll.c
  user/attilio/vmcontention/lib/libc/string/strncmp.c
  user/attilio/vmcontention/lib/libedit/edit/readline/Makefile
  user/attilio/vmcontention/lib/libedit/edit/readline/readline.h
  user/attilio/vmcontention/rescue/rescue/Makefile
  user/attilio/vmcontention/sbin/camcontrol/fwdownload.c
  user/attilio/vmcontention/sbin/sysctl/sysctl.c
  user/attilio/vmcontention/share/man/man4/Makefile
  user/attilio/vmcontention/share/man/man4/ahci.4
  user/attilio/vmcontention/share/man/man4/bge.4
  user/attilio/vmcontention/share/man/man5/src.conf.5
  user/attilio/vmcontention/share/mk/bsd.lib.mk
  user/attilio/vmcontention/share/mk/bsd.own.mk
  user/attilio/vmcontention/share/mk/bsd.prog.mk
  user/attilio/vmcontention/share/mk/sys.mk
  user/attilio/vmcontention/sys/amd64/conf/NOTES
  user/attilio/vmcontention/sys/arm/mv/common.c
  user/attilio/vmcontention/sys/arm/mv/mv_machdep.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h
  user/attilio/vmcontention/sys/conf/files
  user/attilio/vmcontention/sys/conf/files.amd64
  user/attilio/vmcontention/sys/conf/kern.mk
  user/attilio/vmcontention/sys/conf/kern.post.mk
  user/attilio/vmcontention/sys/conf/kern.pre.mk
  user/attilio/vmcontention/sys/conf/kmod.mk
  user/attilio/vmcontention/sys/conf/newvers.sh
  user/attilio/vmcontention/sys/contrib/dev/acpica/acpica_prep.sh
  user/attilio/vmcontention/sys/contrib/dev/acpica/changes.txt
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/adisasm.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/adwalk.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/dmrestag.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/dmtable.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/dmtbdump.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/common/dmtbinfo.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslanalyze.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslcodegen.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslcompile.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslcompiler.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslcompiler.l
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslcompiler.y
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asldefine.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslerror.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslfiles.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslglobal.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asllisting.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslload.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asllookup.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslmain.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslmap.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslmessages.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslopcodes.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asloperands.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslpredef.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslresource.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype1.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype1i.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2d.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2e.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2q.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslrestype2w.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslstubs.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asltransform.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asltree.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/asltypes.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/aslwalks.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dtcompile.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dtcompiler.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dtfield.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dtsubtable.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dttable.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dttemplate.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/compiler/dtutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/debugger/dbcmds.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/debugger/dbdisply.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/debugger/dbfileio.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/debugger/dbinput.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/debugger/dbutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmbuffer.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmopcode.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmresrc.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmresrcl.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmresrcs.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/disassembler/dmwalk.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/dispatcher/dsargs.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/dispatcher/dsfield.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/events/evevent.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/events/evglock.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/events/evregion.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exconfig.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/excreate.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exdump.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exfield.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exfldio.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exprep.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/executer/exutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/hardware/hwvalid.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acapps.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acconfig.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acdebug.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acdisasm.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acevents.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acglobal.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acinterp.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/aclocal.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acnames.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acobject.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acopcode.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acpixf.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acpredef.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acresrc.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acrestyp.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/actbl.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/actbl1.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/actypes.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/acutils.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/amlcode.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/amlresrc.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/include/platform/acenv.h
  user/attilio/vmcontention/sys/contrib/dev/acpica/namespace/nspredef.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/namespace/nsrepair.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/namespace/nsrepair2.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/parser/psargs.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/parser/psopcode.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/parser/pstree.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rscalc.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rscreate.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsdump.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsinfo.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsirq.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rslist.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsmisc.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/resources/rsxface.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/tables/tbfadt.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/tables/tbutils.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/utilities/utdecode.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/utilities/utmutex.c
  user/attilio/vmcontention/sys/contrib/dev/acpica/utilities/utresrc.c
  user/attilio/vmcontention/sys/contrib/pf/net/pf.c
  user/attilio/vmcontention/sys/dev/ahci/ahci.c
  user/attilio/vmcontention/sys/dev/ata/chipsets/ata-ati.c
  user/attilio/vmcontention/sys/dev/ata/chipsets/ata-nvidia.c
  user/attilio/vmcontention/sys/dev/fdt/fdt_common.c
  user/attilio/vmcontention/sys/dev/fdt/fdt_powerpc.c
  user/attilio/vmcontention/sys/dev/fdt/fdtbus.c
  user/attilio/vmcontention/sys/dev/hwpmc/hwpmc_core.c
  user/attilio/vmcontention/sys/dev/ofw/ofw_fdt.c
  user/attilio/vmcontention/sys/dev/ofw/openfirm.c
  user/attilio/vmcontention/sys/dev/pci/pcireg.h
  user/attilio/vmcontention/sys/dev/uart/uart_bus_fdt.c
  user/attilio/vmcontention/sys/dev/usb/wlan/if_urtw.c
  user/attilio/vmcontention/sys/dev/vr/if_vr.c
  user/attilio/vmcontention/sys/dev/vr/if_vrreg.h
  user/attilio/vmcontention/sys/fs/nfsclient/nfs_clbio.c
  user/attilio/vmcontention/sys/fs/nfsserver/nfs_nfsdport.c
  user/attilio/vmcontention/sys/fs/nwfs/nwfs_io.c
  user/attilio/vmcontention/sys/fs/smbfs/smbfs_io.c
  user/attilio/vmcontention/sys/geom/geom_vfs.c
  user/attilio/vmcontention/sys/kern/kern_ffclock.c
  user/attilio/vmcontention/sys/kern/kern_resource.c
  user/attilio/vmcontention/sys/kern/kern_tc.c
  user/attilio/vmcontention/sys/kern/subr_bus.c
  user/attilio/vmcontention/sys/kern/sys_pipe.c
  user/attilio/vmcontention/sys/kern/uipc_shm.c
  user/attilio/vmcontention/sys/kern/vfs_bio.c
  user/attilio/vmcontention/sys/mips/cavium/octeon_machdep.c
  user/attilio/vmcontention/sys/mips/mips/db_trace.c
  user/attilio/vmcontention/sys/modules/acpi/acpi/Makefile
  user/attilio/vmcontention/sys/net/bpf.c
  user/attilio/vmcontention/sys/net/bpf.h
  user/attilio/vmcontention/sys/net/if_vlan.c
  user/attilio/vmcontention/sys/netinet/sctp_pcb.c
  user/attilio/vmcontention/sys/nfsclient/nfs_bio.c
  user/attilio/vmcontention/sys/nfsserver/nfs_serv.c
  user/attilio/vmcontention/sys/powerpc/booke/platform_bare.c
  user/attilio/vmcontention/sys/powerpc/powermac/platform_powermac.c
  user/attilio/vmcontention/sys/sparc64/sparc64/ofw_machdep.c
  user/attilio/vmcontention/sys/sparc64/sparc64/vm_machdep.c
  user/attilio/vmcontention/sys/sys/timeffc.h
  user/attilio/vmcontention/sys/vm/vm_page.c
  user/attilio/vmcontention/sys/vm/vm_page.h
  user/attilio/vmcontention/sys/vm/vm_radix.c
  user/attilio/vmcontention/sys/vm/vm_radix.h
  user/attilio/vmcontention/sys/vm/vnode_pager.c
  user/attilio/vmcontention/sys/xen/evtchn/evtchn_dev.c
  user/attilio/vmcontention/tools/regression/bin/test/regress.sh
  user/attilio/vmcontention/usr.bin/grep/Makefile
  user/attilio/vmcontention/usr.bin/grep/util.c
  user/attilio/vmcontention/usr.bin/make/Makefile
  user/attilio/vmcontention/usr.bin/make/job.c
  user/attilio/vmcontention/usr.bin/procstat/procstat.1
  user/attilio/vmcontention/usr.sbin/acpi/Makefile.inc
  user/attilio/vmcontention/usr.sbin/acpi/acpidb/Makefile
  user/attilio/vmcontention/usr.sbin/acpi/acpidb/acpidb.c
  user/attilio/vmcontention/usr.sbin/acpi/iasl/Makefile
  user/attilio/vmcontention/usr.sbin/bsdinstall/scripts/auto
  user/attilio/vmcontention/usr.sbin/bsdinstall/scripts/services
  user/attilio/vmcontention/usr.sbin/config/mkmakefile.c
  user/attilio/vmcontention/usr.sbin/mergemaster/mergemaster.sh
  user/attilio/vmcontention/usr.sbin/mfiutil/mfi_config.c
  user/attilio/vmcontention/usr.sbin/sade/misc.c
  user/attilio/vmcontention/usr.sbin/tzsetup/tzsetup.c
Directory Properties:
  user/attilio/vmcontention/   (props changed)
  user/attilio/vmcontention/cddl/contrib/opensolaris/   (props changed)
  user/attilio/vmcontention/contrib/bind9/   (props changed)
  user/attilio/vmcontention/contrib/binutils/   (props changed)
  user/attilio/vmcontention/contrib/bzip2/   (props changed)
  user/attilio/vmcontention/contrib/com_err/   (props changed)
  user/attilio/vmcontention/contrib/compiler-rt/   (props changed)
  user/attilio/vmcontention/contrib/dialog/   (props changed)
  user/attilio/vmcontention/contrib/ee/   (props changed)
  user/attilio/vmcontention/contrib/expat/   (props changed)
  user/attilio/vmcontention/contrib/file/   (props changed)
  user/attilio/vmcontention/contrib/gcc/   (props changed)
  user/attilio/vmcontention/contrib/gdb/   (props changed)
  user/attilio/vmcontention/contrib/gdtoa/   (props changed)
  user/attilio/vmcontention/contrib/gnu-sort/   (props changed)
  user/attilio/vmcontention/contrib/groff/   (props changed)
  user/attilio/vmcontention/contrib/less/   (props changed)
  user/attilio/vmcontention/contrib/libcxxrt/   (props changed)
  user/attilio/vmcontention/contrib/libpcap/   (props changed)
  user/attilio/vmcontention/contrib/libstdc++/   (props changed)
  user/attilio/vmcontention/contrib/llvm/   (props changed)
  user/attilio/vmcontention/contrib/llvm/tools/clang/   (props changed)
  user/attilio/vmcontention/contrib/ncurses/   (props changed)
  user/attilio/vmcontention/contrib/netcat/   (props changed)
  user/attilio/vmcontention/contrib/ntp/   (props changed)
  user/attilio/vmcontention/contrib/one-true-awk/   (props changed)
  user/attilio/vmcontention/contrib/openbsm/   (props changed)
  user/attilio/vmcontention/contrib/openpam/   (props changed)
  user/attilio/vmcontention/contrib/openresolv/   (props changed)
  user/attilio/vmcontention/contrib/pf/   (props changed)
  user/attilio/vmcontention/contrib/sendmail/   (props changed)
  user/attilio/vmcontention/contrib/tcpdump/   (props changed)
  user/attilio/vmcontention/contrib/tcsh/   (props changed)
  user/attilio/vmcontention/contrib/tnftp/   (props changed)
  user/attilio/vmcontention/contrib/top/   (props changed)
  user/attilio/vmcontention/contrib/top/install-sh   (props changed)
  user/attilio/vmcontention/contrib/tzcode/stdtime/   (props changed)
  user/attilio/vmcontention/contrib/tzcode/zic/   (props changed)
  user/attilio/vmcontention/contrib/tzdata/   (props changed)
  user/attilio/vmcontention/contrib/wpa/   (props changed)
  user/attilio/vmcontention/contrib/xz/   (props changed)
  user/attilio/vmcontention/crypto/heimdal/   (props changed)
  user/attilio/vmcontention/crypto/openssh/   (props changed)
  user/attilio/vmcontention/crypto/openssl/   (props changed)
  user/attilio/vmcontention/gnu/lib/   (props changed)
  user/attilio/vmcontention/gnu/usr.bin/binutils/   (props changed)
  user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/   (props changed)
  user/attilio/vmcontention/gnu/usr.bin/gdb/   (props changed)
  user/attilio/vmcontention/lib/libc/   (props changed)
  user/attilio/vmcontention/lib/libc/stdtime/   (props changed)
  user/attilio/vmcontention/lib/libutil/   (props changed)
  user/attilio/vmcontention/lib/libz/   (props changed)
  user/attilio/vmcontention/sbin/   (props changed)
  user/attilio/vmcontention/sbin/ipfw/   (props changed)
  user/attilio/vmcontention/share/mk/bsd.arch.inc.mk   (props changed)
  user/attilio/vmcontention/share/zoneinfo/   (props changed)
  user/attilio/vmcontention/sys/   (props changed)
  user/attilio/vmcontention/sys/amd64/include/xen/   (props changed)
  user/attilio/vmcontention/sys/boot/   (props changed)
  user/attilio/vmcontention/sys/boot/i386/efi/   (props changed)
  user/attilio/vmcontention/sys/boot/ia64/efi/   (props changed)
  user/attilio/vmcontention/sys/boot/ia64/ski/   (props changed)
  user/attilio/vmcontention/sys/boot/powerpc/boot1.chrp/   (props changed)
  user/attilio/vmcontention/sys/boot/powerpc/ofw/   (props changed)
  user/attilio/vmcontention/sys/cddl/contrib/opensolaris/   (props changed)
  user/attilio/vmcontention/sys/conf/   (props changed)
  user/attilio/vmcontention/sys/contrib/dev/acpica/   (props changed)
  user/attilio/vmcontention/sys/contrib/octeon-sdk/   (props changed)
  user/attilio/vmcontention/sys/contrib/pf/   (props changed)
  user/attilio/vmcontention/sys/contrib/x86emu/   (props changed)
  user/attilio/vmcontention/tools/build/options/WITHOUT_GPIO   (props changed)
  user/attilio/vmcontention/tools/build/options/WITH_OFED   (props changed)
  user/attilio/vmcontention/usr.bin/calendar/   (props changed)
  user/attilio/vmcontention/usr.bin/csup/   (props changed)
  user/attilio/vmcontention/usr.bin/procstat/   (props changed)
  user/attilio/vmcontention/usr.sbin/ndiscvt/   (props changed)
  user/attilio/vmcontention/usr.sbin/rtadvctl/   (props changed)
  user/attilio/vmcontention/usr.sbin/rtadvd/   (props changed)
  user/attilio/vmcontention/usr.sbin/rtsold/   (props changed)
  user/attilio/vmcontention/usr.sbin/zic/   (props changed)

Modified: user/attilio/vmcontention/Makefile.inc1
==============================================================================
--- user/attilio/vmcontention/Makefile.inc1	Fri Dec  2 21:19:14 2011	(r228209)
+++ user/attilio/vmcontention/Makefile.inc1	Fri Dec  2 21:45:46 2011	(r228210)
@@ -59,8 +59,6 @@ SUBDIR+=games
 .endif
 .if ${MK_CDDL} != "no"
 SUBDIR+=cddl
-.else
-NO_CTF=1
 .endif
 SUBDIR+=gnu include
 .if ${MK_KERBEROS} != "no"
@@ -239,7 +237,7 @@ BMAKE=		MAKEOBJDIRPREFIX=${WORLDTMP} \
 		BOOTSTRAPPING=${OSRELDATE} \
 		SSP_CFLAGS= \
 		-DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \
-		-DNO_PIC -DWITHOUT_PROFILE -DNO_SHARED \
+		-DNO_PIC -DNO_PROFILE -DNO_SHARED \
 		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF
 
 # build-tools stage
@@ -438,7 +436,7 @@ _libraries:
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; \
 	    ${WMAKE} -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
-	    -DWITHOUT_MAN -DWITHOUT_PROFILE libraries
+	    -DWITHOUT_MAN -DNO_PROFILE libraries
 _depend:
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -1321,8 +1319,8 @@ ${_lib}__PL: .PHONY
 		cd ${.CURDIR}/${_lib}; \
 		${MAKE} DIRPRFX=${_lib}/ obj; \
 		${MAKE} DIRPRFX=${_lib}/ depend; \
-		${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ all; \
-		${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ install
+		${MAKE} -DNO_PROFILE -DNO_PIC DIRPRFX=${_lib}/ all; \
+		${MAKE} -DNO_PROFILE -DNO_PIC DIRPRFX=${_lib}/ install
 .endif
 .endfor
 
@@ -1555,7 +1553,7 @@ XDEV_CPUTYPE?=${TARGET_CPUTYPE}
 .endif
 
 NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
-	-DWITHOUT_MAN -DWITHOUT_NLS -DWITHOUT_PROFILE \
+	-DWITHOUT_MAN -DWITHOUT_NLS -DNO_PROFILE \
 	-DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \
 	TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
 	CPUTYPE=${XDEV_CPUTYPE}

Modified: user/attilio/vmcontention/UPDATING
==============================================================================
--- user/attilio/vmcontention/UPDATING	Fri Dec  2 21:19:14 2011	(r228209)
+++ user/attilio/vmcontention/UPDATING	Fri Dec  2 21:45:46 2011	(r228210)
@@ -22,6 +22,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10
 	machines to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20111122:
+	The acpi_wmi(4) status device /dev/wmistat has been renamed to
+	/dev/wmistat0.
+
 20111108:
 	The option VFS_ALLOW_NONMPSAFE option has been added in order to
 	explicitely support non-MPSAFE filesystems.

Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8
==============================================================================
--- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8	Fri Dec  2 21:19:14 2011	(r228209)
+++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8	Fri Dec  2 21:45:46 2011	(r228210)
@@ -48,12 +48,16 @@
 .Ar size volume
 .Nm
 .Cm destroy
-.Op Fl rRf
+.Op Fl fnpRrv
 .Ar filesystem Ns | Ns Ar volume
 .Nm
 .Cm destroy
-.Op Fl rRd
+.Op Fl dnpRrv
+.Sm off
 .Ar snapshot
+.Ns Op % Ns Ar snapname
+.Ns Op , Ns Ar ...
+.Sm on
 .Nm
 .Cm snapshot
 .Op Fl r
@@ -160,7 +164,7 @@
 .Fl a | Ar filesystem Ns | Ns Ar mountpoint
 .Nm
 .Cm send
-.Op Fl DvRp
+.Op Fl DnPpRrv
 .Op Fl i Ar snapshot | Fl I Ar snapshot
 .Ar snapshot
 .Nm
@@ -487,6 +491,17 @@ The default value is
 .Cm off .
 .It Sy creation
 The time this dataset was created.
+.It Sy clones
+For snapshots, this property is a comma-separated list of filesystems or
+volumes which are clones of this snapshot.  The clones'
+.Sy origin
+property is this snapshot.  If the
+.Sy clones
+property is not empty, then this snapshot can not be destroyed (even with the
+.Fl r
+or
+.Fl f
+options).
 .It Sy defer_destroy
 This property is
 .Cm on
@@ -644,6 +659,28 @@ power of 2 from 512 bytes to 128 Kbytes 
 .Pp
 This property can also be referred to by its shortened column name,
 .Sy volblock .
+.It Sy written
+The amount of
+.Sy referenced
+space written to this dataset since the previous snapshot.
+.It Sy written@ Ns Ar snapshot
+The amount of
+.Sy referenced
+space written to this dataset since the specified snapshot.  This is the space
+that is referenced by this dataset but was not referenced by the specified
+snapshot.
+.Pp
+The
+.Ar snapshot
+may be specified as a short snapshot name (just the part after the
+.Sy @ Ns ),
+in which case it will be interpreted as a snapshot in the same filesystem as
+this dataset. The
+.Ar snapshot
+may be a full snapshot name
+.Pq Em filesystem at snapshot ,
+which for clones may be a snapshot in the origin's filesystem (or the origin of
+the origin's filesystem, etc).
 .El
 .Pp
 The following native properties can be used to change the behavior of a
@@ -1403,7 +1440,7 @@ options.
 .It Xo
 .Nm
 .Cm destroy
-.Op Fl rRf
+.Op Fl fnpRrv
 .Ar filesystem Ns | Ns Ar volume
 .Xc
 .Pp
@@ -1422,6 +1459,17 @@ Force an unmount of any file systems usi
 .Qq Nm Cm unmount Fl f
 command. This option has no effect on non-file systems or unmounted file
 systems.
+.It Fl n
+Do a dry-run ("No-op") deletion. No data will be deleted. This is useful in
+conjunction with the
+.Fl v
+or
+.Fl p
+flags to determine what data would be deleted.
+.It Fl p
+Print machine-parsable verbose information about the deleted data.
+.It Fl v
+Print verbose information about the deleted data.
 .El
 .Pp
 Extreme care should be taken when applying either the
@@ -1433,11 +1481,15 @@ behavior for mounted file systems in use
 .It Xo
 .Nm
 .Cm destroy
-.Op Fl rRd
+.Op Fl dnpRrv
+.Sm off
 .Ar snapshot
+.Ns Op % Ns Ar snapname
+.Ns Op , Ns Ar ...
+.Sm on
 .Xc
 .Pp
-The given snapshot is destroyed immediately if and only if the
+The given snapshots are destroyed immediately if and only if the
 .Qq Nm Cm destroy
 command without the
 .Fl d
@@ -1445,15 +1497,41 @@ option would have destroyed it. Such imm
 example, if the snapshot had no clones and the user-initiated reference count
 were zero.
 .Pp
-If the snapshot does not qualify for immediate destruction, it is marked for
+If a snapshot does not qualify for immediate destruction, it is marked for
 deferred deletion. In this state, it exists as a usable, visible snapshot until
 both of the preconditions listed above are met, at which point it is destroyed.
+.Pp
+An inclusive range of snapshots may be specified by separating the
+first and last snapshots with a percent sign
+.Pq Sy % .
+The first and/or last snapshots may be left blank, in which case the
+filesystem's oldest or newest snapshot will be implied.
+.Pp
+Multiple snapshots
+(or ranges of snapshots) of the same filesystem or volume may be specified
+in a comma-separated list of snapshots.
+Only the snapshot's short name (the
+part after the
+.Sy @ )
+should be specified when using a range or comma-separated list to identify
+multiple snapshots.
 .Bl -tag -width indent
 .It Fl r
 Destroy (or mark for deferred deletion) all snapshots with this name in
 descendent file systems.
 .It Fl R
 Recursively destroy all dependents.
+.It Fl n
+Do a dry-run ("No-op") deletion. No data will be deleted. This is useful in
+conjunction with the
+.Fl v
+or
+.Fl p
+flags to determine what data would be deleted.
+.It Fl p
+Print machine-parsable verbose information about the deleted data.
+.It Fl v
+Print verbose information about the deleted data.
 .It Fl d
 Defer snapshot deletion.
 .El
@@ -2080,7 +2158,7 @@ file system shared on the system.
 .It Xo
 .Nm
 .Cm send
-.Op Fl DvRp
+.Op Fl DnPpRrv
 .Op Fl i Ar snapshot | Fl I Ar snapshot
 .Ar snapshot
 .Xc
@@ -2120,7 +2198,7 @@ Generate a stream package that sends all
 .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 Ns .
+.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
 .Fl i
 option.
@@ -2151,10 +2229,26 @@ be used regardless of the dataset's
 property, but performance will be much better if the filesystem uses a
 dedup-capable checksum (eg.
 .Sy sha256 Ns ).
+.It Fl r
+Recursively send all descendant snapshots.  This is similar to the
+.Fl R
+flag, but information about deleted and renamed datasets is not included, and
+property information is only included if the
+.Fl p
+flag is specified.
 .It Fl p
 Include the dataset's properties in the stream. This flag is implicit when
 .Fl R
 is specified. The receiving system must also support this feature.
+.It Fl n
+Do a dry-run ("No-op") send.  Do not generate any actual send data.  This is
+useful in conjunction with the
+.Fl v
+or
+.Fl P
+flags to determine what data will be sent.
+.It Fl P
+Print machine-parsable verbose information about the stream package generated.
 .It Fl v
 Print verbose information about the stream package generated.
 .El
@@ -2320,7 +2414,7 @@ may be specified as a comma-separated li
 .Tn ZFS
 subcommand and property names. See the property list below. Property set names,
 which begin with an at sign
-.Pq Sy @ Ns ,
+.Pq Sy @ ,
 may be specified. See the
 .Fl s
 form below for details.
@@ -2442,7 +2536,7 @@ commands for the specified file system a
 dynamically, so changes to a set are immediately reflected. Permission sets
 follow the same naming restrictions as ZFS file systems, but the name must
 begin with an "at sign"
-.Pq Sy @ Ns ,
+.Pq Sy @ ,
 and can be no more than 64 characters long.
 .It Xo
 .Nm

Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Fri Dec  2 21:19:14 2011	(r228209)
+++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Fri Dec  2 21:45:46 2011	(r228210)
@@ -22,8 +22,9 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright (c) 2011 by Delphix. All rights reserved.
  * Copyright (c) 2011 Pawel Jakub Dawidek <pawel at dawidek.net>.
- * All rights reserved.
+ * Copyright (c) 2011 Martin Matuska <mm at FreeBSD.org>. All rights reserved.
  */
 
 #include <assert.h>
@@ -145,7 +146,7 @@ typedef enum {
 	HELP_HOLD,
 	HELP_HOLDS,
 	HELP_RELEASE,
-	HELP_DIFF
+	HELP_DIFF,
 } zfs_help_t;
 
 typedef struct zfs_command {
@@ -220,8 +221,9 @@ get_usage(zfs_help_t idx)
 		    "\tcreate [-ps] [-b blocksize] [-o property=value] ... "
 		    "-V <size> <volume>\n"));
 	case HELP_DESTROY:
-		return (gettext("\tdestroy [-rRf] <filesystem|volume>\n"
-		    "\tdestroy [-rRd] <snapshot>\n"));
+		return (gettext("\tdestroy [-fnpRrv] <filesystem|volume>\n"
+		    "\tdestroy [-dnpRrv] "
+		    "<snapshot>[%<snapname>][,...]\n"));
 	case HELP_GET:
 		return (gettext("\tget [-rHp] [-d max] "
 		    "[-o \"all\" | field[,...]] [-s source[,...]]\n"
@@ -260,7 +262,7 @@ get_usage(zfs_help_t idx)
 	case HELP_ROLLBACK:
 		return (gettext("\trollback [-rRf] <snapshot>\n"));
 	case HELP_SEND:
-		return (gettext("\tsend [-DvRp] "
+		return (gettext("\tsend [-DnPpRrv] "
 		    "[-i snapshot | -I snapshot] <snapshot>\n"));
 	case HELP_SET:
 		return (gettext("\tset <property=value> "
@@ -440,6 +442,8 @@ usage(boolean_t requested)
 		(void) fprintf(fp, "YES       NO   <size> | none\n");
 		(void) fprintf(fp, "\t%-15s ", "groupquota at ...");
 		(void) fprintf(fp, "YES       NO   <size> | none\n");
+		(void) fprintf(fp, "\t%-15s ", "written@<snap>");
+		(void) fprintf(fp, " NO       NO   <size>\n");
 
 		(void) fprintf(fp, gettext("\nSizes are specified in bytes "
 		    "with standard units such as K, M, G, etc.\n"));
@@ -885,15 +889,23 @@ badusage:
  */
 typedef struct destroy_cbdata {
 	boolean_t	cb_first;
-	int		cb_force;
-	int		cb_recurse;
-	int		cb_error;
-	int		cb_needforce;
-	int		cb_doclones;
-	boolean_t	cb_closezhp;
+	boolean_t	cb_force;
+	boolean_t	cb_recurse;
+	boolean_t	cb_error;
+	boolean_t	cb_doclones;
 	zfs_handle_t	*cb_target;
-	char		*cb_snapname;
 	boolean_t	cb_defer_destroy;
+	boolean_t	cb_verbose;
+	boolean_t	cb_parsable;
+	boolean_t	cb_dryrun;
+	nvlist_t	*cb_nvl;
+
+	/* first snap in contiguous run */
+	zfs_handle_t	*cb_firstsnap;
+	/* previous snap in contiguous run */
+	zfs_handle_t	*cb_prevsnap;
+	int64_t		cb_snapused;
+	char		*cb_snapspec;
 } destroy_cbdata_t;
 
 /*
@@ -923,7 +935,7 @@ destroy_check_dependent(zfs_handle_t *zh
 			(void) fprintf(stderr, gettext("use '-r' to destroy "
 			    "the following datasets:\n"));
 			cbp->cb_first = B_FALSE;
-			cbp->cb_error = 1;
+			cbp->cb_error = B_TRUE;
 		}
 
 		(void) fprintf(stderr, "%s\n", zfs_get_name(zhp));
@@ -944,7 +956,8 @@ destroy_check_dependent(zfs_handle_t *zh
 			(void) fprintf(stderr, gettext("use '-R' to destroy "
 			    "the following datasets:\n"));
 			cbp->cb_first = B_FALSE;
-			cbp->cb_error = 1;
+			cbp->cb_error = B_TRUE;
+			cbp->cb_dryrun = B_TRUE;
 		}
 
 		(void) fprintf(stderr, "%s\n", zfs_get_name(zhp));
@@ -958,7 +971,20 @@ out:
 static int
 destroy_callback(zfs_handle_t *zhp, void *data)
 {
-	destroy_cbdata_t *cbp = data;
+	destroy_cbdata_t *cb = data;
+	const char *name = zfs_get_name(zhp);
+
+	if (cb->cb_verbose) {
+		if (cb->cb_parsable) {
+			(void) printf("destroy\t%s\n", name);
+		} else if (cb->cb_dryrun) {
+			(void) printf(gettext("would destroy %s\n"),
+			    name);
+		} else {
+			(void) printf(gettext("will destroy %s\n"),
+			    name);
+		}
+	}
 
 	/*
 	 * Ignore pools (which we've already flagged as an error before getting
@@ -970,13 +996,12 @@ destroy_callback(zfs_handle_t *zhp, void
 		return (0);
 	}
 
-	/*
-	 * Bail out on the first error.
-	 */
-	if (zfs_unmount(zhp, NULL, cbp->cb_force ? MS_FORCE : 0) != 0 ||
-	    zfs_destroy(zhp, cbp->cb_defer_destroy) != 0) {
-		zfs_close(zhp);
-		return (-1);
+	if (!cb->cb_dryrun) {
+		if (zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 ||
+		    zfs_destroy(zhp, cb->cb_defer_destroy) != 0) {
+			zfs_close(zhp);
+			return (-1);
+		}
 	}
 
 	zfs_close(zhp);
@@ -984,39 +1009,142 @@ destroy_callback(zfs_handle_t *zhp, void
 }
 
 static int
-destroy_snap_clones(zfs_handle_t *zhp, void *arg)
+destroy_print_cb(zfs_handle_t *zhp, void *arg)
 {
-	destroy_cbdata_t *cbp = arg;
-	char thissnap[MAXPATHLEN];
-	zfs_handle_t *szhp;
-	boolean_t closezhp = cbp->cb_closezhp;
-	int rv;
+	destroy_cbdata_t *cb = arg;
+	const char *name = zfs_get_name(zhp);
+	int err = 0;
 
-	(void) snprintf(thissnap, sizeof (thissnap),
-	    "%s@%s", zfs_get_name(zhp), cbp->cb_snapname);
+	if (nvlist_exists(cb->cb_nvl, name)) {
+		if (cb->cb_firstsnap == NULL)
+			cb->cb_firstsnap = zfs_handle_dup(zhp);
+		if (cb->cb_prevsnap != NULL)
+			zfs_close(cb->cb_prevsnap);
+		/* this snap continues the current range */
+		cb->cb_prevsnap = zfs_handle_dup(zhp);
+		if (cb->cb_verbose) {
+			if (cb->cb_parsable) {
+				(void) printf("destroy\t%s\n", name);
+			} else if (cb->cb_dryrun) {
+				(void) printf(gettext("would destroy %s\n"),
+				    name);
+			} else {
+				(void) printf(gettext("will destroy %s\n"),
+				    name);
+			}
+		}
+	} else if (cb->cb_firstsnap != NULL) {
+		/* end of this range */
+		uint64_t used = 0;
+		err = zfs_get_snapused_int(cb->cb_firstsnap,
+		    cb->cb_prevsnap, &used);
+		cb->cb_snapused += used;
+		zfs_close(cb->cb_firstsnap);
+		cb->cb_firstsnap = NULL;
+		zfs_close(cb->cb_prevsnap);
+		cb->cb_prevsnap = NULL;
+	}
+	zfs_close(zhp);
+	return (err);
+}
 
-	libzfs_print_on_error(g_zfs, B_FALSE);
-	szhp = zfs_open(g_zfs, thissnap, ZFS_TYPE_SNAPSHOT);
-	libzfs_print_on_error(g_zfs, B_TRUE);
-	if (szhp) {
-		/*
-		 * Destroy any clones of this snapshot
-		 */
-		if (zfs_iter_dependents(szhp, B_FALSE, destroy_callback,
-		    cbp) != 0) {
-			zfs_close(szhp);
-			if (closezhp)
-				zfs_close(zhp);
-			return (-1);
+static int
+destroy_print_snapshots(zfs_handle_t *fs_zhp, destroy_cbdata_t *cb)
+{
+	int err;
+	assert(cb->cb_firstsnap == NULL);
+	assert(cb->cb_prevsnap == NULL);
+	err = zfs_iter_snapshots_sorted(fs_zhp, destroy_print_cb, cb);
+	if (cb->cb_firstsnap != NULL) {
+		uint64_t used = 0;
+		if (err == 0) {
+			err = zfs_get_snapused_int(cb->cb_firstsnap,
+			    cb->cb_prevsnap, &used);
 		}
-		zfs_close(szhp);
+		cb->cb_snapused += used;
+		zfs_close(cb->cb_firstsnap);
+		cb->cb_firstsnap = NULL;
+		zfs_close(cb->cb_prevsnap);
+		cb->cb_prevsnap = NULL;
 	}
+	return (err);
+}
 
-	cbp->cb_closezhp = B_TRUE;
-	rv = zfs_iter_filesystems(zhp, destroy_snap_clones, arg);
-	if (closezhp)
-		zfs_close(zhp);
-	return (rv);
+static int
+snapshot_to_nvl_cb(zfs_handle_t *zhp, void *arg)
+{
+	destroy_cbdata_t *cb = arg;
+	int err = 0;
+
+	/* Check for clones. */
+	if (!cb->cb_doclones) {
+		cb->cb_target = zhp;
+		cb->cb_first = B_TRUE;
+		err = zfs_iter_dependents(zhp, B_TRUE,
+		    destroy_check_dependent, cb);
+	}
+
+	if (err == 0) {
+		if (nvlist_add_boolean(cb->cb_nvl, zfs_get_name(zhp)))
+			nomem();
+	}
+	zfs_close(zhp);
+	return (err);
+}
+
+static int
+gather_snapshots(zfs_handle_t *zhp, void *arg)
+{
+	destroy_cbdata_t *cb = arg;
+	int err = 0;
+
+	err = zfs_iter_snapspec(zhp, cb->cb_snapspec, snapshot_to_nvl_cb, cb);
+	if (err == ENOENT)
+		err = 0;
+	if (err != 0)
+		goto out;
+
+	if (cb->cb_verbose) {
+		err = destroy_print_snapshots(zhp, cb);
+		if (err != 0)
+			goto out;
+	}
+
+	if (cb->cb_recurse)
+		err = zfs_iter_filesystems(zhp, gather_snapshots, cb);
+
+out:
+	zfs_close(zhp);
+	return (err);
+}
+
+static int
+destroy_clones(destroy_cbdata_t *cb)
+{
+	nvpair_t *pair;
+	for (pair = nvlist_next_nvpair(cb->cb_nvl, NULL);
+	    pair != NULL;
+	    pair = nvlist_next_nvpair(cb->cb_nvl, pair)) {
+		zfs_handle_t *zhp = zfs_open(g_zfs, nvpair_name(pair),
+		    ZFS_TYPE_SNAPSHOT);
+		if (zhp != NULL) {
+			boolean_t defer = cb->cb_defer_destroy;
+			int err;
+
+			/*
+			 * We can't defer destroy non-snapshots, so set it to
+			 * false while destroying the clones.
+			 */
+			cb->cb_defer_destroy = B_FALSE;
+			err = zfs_iter_dependents(zhp, B_FALSE,
+			    destroy_callback, cb);
+			cb->cb_defer_destroy = defer;
+			zfs_close(zhp);
+			if (err != 0)
+				return (err);
+		}
+	}
+	return (0);
 }
 
 static int
@@ -1025,25 +1153,35 @@ zfs_do_destroy(int argc, char **argv)
 	destroy_cbdata_t cb = { 0 };
 	int c;
 	zfs_handle_t *zhp;
-	char *cp;
+	char *at;
 	zfs_type_t type = ZFS_TYPE_DATASET;
 
 	/* check options */
-	while ((c = getopt(argc, argv, "dfrR")) != -1) {
+	while ((c = getopt(argc, argv, "vpndfrR")) != -1) {
 		switch (c) {
+		case 'v':
+			cb.cb_verbose = B_TRUE;
+			break;
+		case 'p':
+			cb.cb_verbose = B_TRUE;
+			cb.cb_parsable = B_TRUE;
+			break;
+		case 'n':
+			cb.cb_dryrun = B_TRUE;
+			break;
 		case 'd':
 			cb.cb_defer_destroy = B_TRUE;
 			type = ZFS_TYPE_SNAPSHOT;
 			break;
 		case 'f':
-			cb.cb_force = 1;
+			cb.cb_force = B_TRUE;
 			break;
 		case 'r':
-			cb.cb_recurse = 1;
+			cb.cb_recurse = B_TRUE;
 			break;
 		case 'R':
-			cb.cb_recurse = 1;
-			cb.cb_doclones = 1;
+			cb.cb_recurse = B_TRUE;
+			cb.cb_doclones = B_TRUE;
 			break;
 		case '?':
 		default:
@@ -1058,7 +1196,7 @@ zfs_do_destroy(int argc, char **argv)
 
 	/* check number of arguments */
 	if (argc == 0) {
-		(void) fprintf(stderr, gettext("missing path argument\n"));
+		(void) fprintf(stderr, gettext("missing dataset argument\n"));
 		usage(B_FALSE);
 	}
 	if (argc > 1) {
@@ -1066,91 +1204,117 @@ zfs_do_destroy(int argc, char **argv)
 		usage(B_FALSE);
 	}
 
-	/*
-	 * If we are doing recursive destroy of a snapshot, then the
-	 * named snapshot may not exist.  Go straight to libzfs.
-	 */
-	if (cb.cb_recurse && (cp = strchr(argv[0], '@'))) {
-		int ret;
+	at = strchr(argv[0], '@');
+	if (at != NULL) {
+		int err;
 
-		*cp = '\0';
-		if ((zhp = zfs_open(g_zfs, argv[0], ZFS_TYPE_DATASET)) == NULL)
+		/* Build the list of snaps to destroy in cb_nvl. */
+		if (nvlist_alloc(&cb.cb_nvl, NV_UNIQUE_NAME, 0) != 0)
+			nomem();
+
+		*at = '\0';
+		zhp = zfs_open(g_zfs, argv[0],
+		    ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME);
+		if (zhp == NULL)
 			return (1);
-		*cp = '@';
-		cp++;
 
-		if (cb.cb_doclones) {
-			boolean_t defer = cb.cb_defer_destroy;
+		cb.cb_snapspec = at + 1;
+		if (gather_snapshots(zfs_handle_dup(zhp), &cb) != 0 ||
+		    cb.cb_error) {
+			zfs_close(zhp);
+			nvlist_free(cb.cb_nvl);
+			return (1);
+		}
 
-			/*
-			 * Temporarily ignore the defer_destroy setting since
-			 * it's not supported for clones.
-			 */
-			cb.cb_defer_destroy = B_FALSE;
-			cb.cb_snapname = cp;
-			if (destroy_snap_clones(zhp, &cb) != 0) {
-				zfs_close(zhp);
-				return (1);
+		if (nvlist_empty(cb.cb_nvl)) {
+			(void) fprintf(stderr, gettext("could not find any "
+			    "snapshots to destroy; check snapshot names.\n"));
+			zfs_close(zhp);
+			nvlist_free(cb.cb_nvl);
+			return (1);
+		}
+
+		if (cb.cb_verbose) {
+			char buf[16];
+			zfs_nicenum(cb.cb_snapused, buf, sizeof (buf));
+			if (cb.cb_parsable) {
+				(void) printf("reclaim\t%llu\n",
+				    cb.cb_snapused);
+			} else if (cb.cb_dryrun) {
+				(void) printf(gettext("would reclaim %s\n"),
+				    buf);
+			} else {
+				(void) printf(gettext("will reclaim %s\n"),
+				    buf);
 			}
-			cb.cb_defer_destroy = defer;
 		}
 
-		ret = zfs_destroy_snaps(zhp, cp, cb.cb_defer_destroy);
-		zfs_close(zhp);
-		if (ret) {
-			(void) fprintf(stderr,
-			    gettext("no snapshots destroyed\n"));
+		if (!cb.cb_dryrun) {
+			if (cb.cb_doclones)
+				err = destroy_clones(&cb);
+			if (err == 0) {
+				err = zfs_destroy_snaps_nvl(zhp, cb.cb_nvl,
+				    cb.cb_defer_destroy);
+			}
 		}
-		return (ret != 0);
-	}
 
-	/* Open the given dataset */
-	if ((zhp = zfs_open(g_zfs, argv[0], type)) == NULL)
-		return (1);
+		zfs_close(zhp);
+		nvlist_free(cb.cb_nvl);
+		if (err != 0)
+			return (1);
+	} else {
+		/* Open the given dataset */
+		if ((zhp = zfs_open(g_zfs, argv[0], type)) == NULL)
+			return (1);
 
-	cb.cb_target = zhp;
+		cb.cb_target = zhp;
 
-	/*
-	 * Perform an explicit check for pools before going any further.
-	 */
-	if (!cb.cb_recurse && strchr(zfs_get_name(zhp), '/') == NULL &&
-	    zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM) {
-		(void) fprintf(stderr, gettext("cannot destroy '%s': "
-		    "operation does not apply to pools\n"),
-		    zfs_get_name(zhp));
-		(void) fprintf(stderr, gettext("use 'zfs destroy -r "
-		    "%s' to destroy all datasets in the pool\n"),
-		    zfs_get_name(zhp));
-		(void) fprintf(stderr, gettext("use 'zpool destroy %s' "
-		    "to destroy the pool itself\n"), zfs_get_name(zhp));
-		zfs_close(zhp);
-		return (1);
-	}
+		/*
+		 * Perform an explicit check for pools before going any further.
+		 */
+		if (!cb.cb_recurse && strchr(zfs_get_name(zhp), '/') == NULL &&
+		    zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM) {
+			(void) fprintf(stderr, gettext("cannot destroy '%s': "
+			    "operation does not apply to pools\n"),
+			    zfs_get_name(zhp));
+			(void) fprintf(stderr, gettext("use 'zfs destroy -r "
+			    "%s' to destroy all datasets in the pool\n"),
+			    zfs_get_name(zhp));
+			(void) fprintf(stderr, gettext("use 'zpool destroy %s' "
+			    "to destroy the pool itself\n"), zfs_get_name(zhp));
+			zfs_close(zhp);
+			return (1);
+		}
 
-	/*
-	 * Check for any dependents and/or clones.
-	 */
-	cb.cb_first = B_TRUE;
-	if (!cb.cb_doclones && !cb.cb_defer_destroy &&
-	    zfs_iter_dependents(zhp, B_TRUE, destroy_check_dependent,
-	    &cb) != 0) {
-		zfs_close(zhp);
-		return (1);
-	}
+		/*
+		 * Check for any dependents and/or clones.
+		 */
+		cb.cb_first = B_TRUE;
+		if (!cb.cb_doclones &&
+		    zfs_iter_dependents(zhp, B_TRUE, destroy_check_dependent,
+		    &cb) != 0) {
+			zfs_close(zhp);
+			return (1);
+		}
 
-	if (cb.cb_error || (!cb.cb_defer_destroy &&
-	    (zfs_iter_dependents(zhp, B_FALSE, destroy_callback, &cb) != 0))) {
-		zfs_close(zhp);
-		return (1);
-	}
+		if (cb.cb_error) {
+			zfs_close(zhp);
+			return (1);
+		}
 
-	/*
-	 * Do the real thing.  The callback will close the handle regardless of
-	 * whether it succeeds or not.
-	 */
+		if (zfs_iter_dependents(zhp, B_FALSE, destroy_callback,
+		    &cb) != 0) {
+			zfs_close(zhp);
+			return (1);
+		}
 
-	if (destroy_callback(zhp, &cb) != 0)
-		return (1);
+		/*
+		 * Do the real thing.  The callback will close the
+		 * handle regardless of whether it succeeds or not.
+		 */
+		if (destroy_callback(zhp, &cb) != 0)
+			return (1);
+	}
 
 	return (0);
 }
@@ -1252,6 +1416,17 @@ get_callback(zfs_handle_t *zhp, void *da
 
 			zprop_print_one_property(zfs_get_name(zhp), cbp,
 			    pl->pl_user_prop, buf, sourcetype, source, NULL);
+		} else if (zfs_prop_written(pl->pl_user_prop)) {
+			sourcetype = ZPROP_SRC_LOCAL;
+
+			if (zfs_prop_get_written(zhp, pl->pl_user_prop,
+			    buf, sizeof (buf), cbp->cb_literal) != 0) {
+				sourcetype = ZPROP_SRC_NONE;
+				(void) strlcpy(buf, "-", sizeof (buf));
+			}
+
+			zprop_print_one_property(zfs_get_name(zhp), cbp,
+			    pl->pl_user_prop, buf, sourcetype, source, NULL);
 		} else {
 			if (nvlist_lookup_nvlist(user_props,
 			    pl->pl_user_prop, &propval) != 0) {
@@ -1796,8 +1971,8 @@ zfs_do_upgrade(int argc, char **argv)
 		    "---------------\n");
 		(void) printf(gettext(" 1   Initial ZFS filesystem version\n"));
 		(void) printf(gettext(" 2   Enhanced directory entries\n"));
-		(void) printf(gettext(" 3   Case insensitive and File system "
-		    "unique identifier (FUID)\n"));
+		(void) printf(gettext(" 3   Case insensitive and filesystem "
+		    "user identifier (FUID)\n"));
 		(void) printf(gettext(" 4   userquota, groupquota "
 		    "properties\n"));
 		(void) printf(gettext(" 5   System attributes\n"));
@@ -2677,6 +2852,13 @@ print_dataset(zfs_handle_t *zhp, zprop_l
 			else
 				propstr = property;
 			right_justify = B_TRUE;
+		} else if (zfs_prop_written(pl->pl_user_prop)) {
+			if (zfs_prop_get_written(zhp, pl->pl_user_prop,
+			    property, sizeof (property), B_FALSE) != 0)
+				propstr = "-";
+			else
+				propstr = property;
+			right_justify = B_TRUE;
 		} else {
 			if (nvlist_lookup_nvlist(userprops,
 			    pl->pl_user_prop, &propval) != 0)
@@ -3303,9 +3485,6 @@ usage:
 }
 
 /*
- * zfs send [-vDp] -R [-i|-I <@snap>] <fs at snap>
- * zfs send [-vDp] [-i|-I <@snap>] <fs at snap>
- *
  * Send a backup stream to stdout.
  */
 static int
@@ -3317,11 +3496,11 @@ zfs_do_send(int argc, char **argv)
 	zfs_handle_t *zhp;
 	sendflags_t flags = { 0 };
 	int c, err;
-	nvlist_t *dbgnv;
+	nvlist_t *dbgnv = NULL;
 	boolean_t extraverbose = B_FALSE;
 
 	/* check options */
-	while ((c = getopt(argc, argv, ":i:I:RDpv")) != -1) {
+	while ((c = getopt(argc, argv, ":i:I:RDpvnP")) != -1) {
 		switch (c) {
 		case 'i':
 			if (fromname)
@@ -3340,6 +3519,10 @@ zfs_do_send(int argc, char **argv)
 		case 'p':
 			flags.props = B_TRUE;
 			break;
+		case 'P':
+			flags.parsable = B_TRUE;
+			flags.verbose = B_TRUE;
+			break;
 		case 'v':
 			if (flags.verbose)
 				extraverbose = B_TRUE;
@@ -3348,6 +3531,9 @@ zfs_do_send(int argc, char **argv)
 		case 'D':
 			flags.dedup = B_TRUE;
 			break;
+		case 'n':
+			flags.dryrun = B_TRUE;
+			break;
 		case ':':
 			(void) fprintf(stderr, gettext("missing argument for "
 			    "'%c' option\n"), optopt);
@@ -3373,7 +3559,7 @@ zfs_do_send(int argc, char **argv)
 		usage(B_FALSE);
 	}
 
-	if (isatty(STDOUT_FILENO)) {
+	if (!flags.dryrun && isatty(STDOUT_FILENO)) {
 		(void) fprintf(stderr,
 		    gettext("Error: Stream can not be written to a terminal.\n"
 		    "You must redirect standard output.\n"));
@@ -3427,10 +3613,10 @@ zfs_do_send(int argc, char **argv)
 	if (flags.replicate && fromname == NULL)
 		flags.doall = B_TRUE;
 
-	err = zfs_send(zhp, fromname, toname, flags, STDOUT_FILENO, NULL, 0,
+	err = zfs_send(zhp, fromname, toname, &flags, STDOUT_FILENO, NULL, 0,
 	    extraverbose ? &dbgnv : NULL);
 
-	if (extraverbose) {
+	if (extraverbose && dbgnv != NULL) {
 		/*
 		 * dump_nvlist prints to stdout, but that's been
 		 * redirected to a file.  Make it print to stderr
@@ -3511,7 +3697,7 @@ zfs_do_receive(int argc, char **argv)
 		return (1);
 	}
 
-	err = zfs_receive(g_zfs, argv[0], flags, STDIN_FILENO, NULL);
+	err = zfs_receive(g_zfs, argv[0], &flags, STDIN_FILENO, NULL);
 
 	return (err != 0);
 }

Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8
==============================================================================
--- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8	Fri Dec  2 21:19:14 2011	(r228209)
+++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8	Fri Dec  2 21:45:46 2011	(r228210)
@@ -23,7 +23,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 26, 2011
+.Dd November 28, 2011
 .Dt ZPOOL 8
 .Os
 .Sh NAME
@@ -133,6 +133,9 @@
 .Op Fl e
 .Ar pool device ...
 .Nm
+.Cm reguid
+.Ar pool
+.Nm
 .Cm remove
 .Ar pool device ...
 .Nm
@@ -192,7 +195,7 @@ are supported:
 .Bl -tag
 .It Sy disk
 A block device, typically located under
-.Pa /dev Ns .
+.Pa /dev .
 .Tn ZFS
 can use individual slices or partitions, though the recommended mode of
 operation is to use whole disks. A disk can be specified by a full path to the
@@ -218,13 +221,14 @@ bytes and can withstand
 .Pq Em N-1
 devices failing before data integrity is compromised.
 .It Sy raidz
-.No ( or Sy raidz1 raidz2 raidz3 Ns ).
+(or
+.Sy raidz1 raidz2 raidz3 ) .
 A variation on

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


More information about the svn-src-user mailing list