svn commit: r305220 - in projects/clang390-import: . bin/df cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensolaris/cmd/zpool c...

Dimitry Andric dim at FreeBSD.org
Thu Sep 1 18:16:48 UTC 2016


Author: dim
Date: Thu Sep  1 18:16:45 2016
New Revision: 305220
URL: https://svnweb.freebsd.org/changeset/base/305220

Log:
  Merge ^/head r305087 through r305219.

Added:
  projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.depend
     - copied unchanged from r305219, head/cddl/usr.sbin/zfsd/Makefile.depend
  projects/clang390-import/contrib/elftoolchain/libelftc/elftc_timestamp.3
     - copied unchanged from r305219, head/contrib/elftoolchain/libelftc/elftc_timestamp.3
  projects/clang390-import/contrib/elftoolchain/libelftc/elftc_timestamp.c
     - copied unchanged from r305219, head/contrib/elftoolchain/libelftc/elftc_timestamp.c
  projects/clang390-import/contrib/gcc/config/i386/cpuid.h
     - copied unchanged from r305219, head/contrib/gcc/config/i386/cpuid.h
  projects/clang390-import/libexec/rtld-elf/tests/libpythagoras/Makefile.depend
     - copied unchanged from r305219, head/libexec/rtld-elf/tests/libpythagoras/Makefile.depend
  projects/clang390-import/libexec/rtld-elf/tests/target/Makefile.depend
     - copied unchanged from r305219, head/libexec/rtld-elf/tests/target/Makefile.depend
  projects/clang390-import/sys/arm/ti/am335x/am335x_scm.c
     - copied unchanged from r305219, head/sys/arm/ti/am335x/am335x_scm.c
  projects/clang390-import/sys/boot/fdt/dts/arm64/
     - copied from r305219, head/sys/boot/fdt/dts/arm64/
  projects/clang390-import/tests/sys/pjdfstest/pjdfstest/Makefile.depend
     - copied unchanged from r305219, head/tests/sys/pjdfstest/pjdfstest/Makefile.depend
  projects/clang390-import/tests/sys/sys/Makefile.depend
     - copied unchanged from r305219, head/tests/sys/sys/Makefile.depend
  projects/clang390-import/usr.bin/bsdcat/tests/Makefile.depend
     - copied unchanged from r305219, head/usr.bin/bsdcat/tests/Makefile.depend
  projects/clang390-import/usr.bin/sdiff/tests/Makefile.depend
     - copied unchanged from r305219, head/usr.bin/sdiff/tests/Makefile.depend
  projects/clang390-import/usr.bin/xinstall/tests/Makefile.depend
     - copied unchanged from r305219, head/usr.bin/xinstall/tests/Makefile.depend
  projects/clang390-import/usr.sbin/extattr/tests/Makefile.depend
     - copied unchanged from r305219, head/usr.sbin/extattr/tests/Makefile.depend
  projects/clang390-import/usr.sbin/pmcstudy/Makefile.depend
     - copied unchanged from r305219, head/usr.sbin/pmcstudy/Makefile.depend
  projects/clang390-import/usr.sbin/ypldap/Makefile.depend
     - copied unchanged from r305219, head/usr.sbin/ypldap/Makefile.depend
Modified:
  projects/clang390-import/Makefile
  projects/clang390-import/bin/df/df.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
  projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
  projects/clang390-import/cddl/usr.sbin/dtrace/Makefile.depend
  projects/clang390-import/cddl/usr.sbin/lockstat/Makefile.depend
  projects/clang390-import/cddl/usr.sbin/plockstat/Makefile.depend
  projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc
  projects/clang390-import/contrib/elftoolchain/common/elfdefinitions.h
  projects/clang390-import/contrib/elftoolchain/elfcopy/archive.c
  projects/clang390-import/contrib/elftoolchain/elfcopy/ascii.c
  projects/clang390-import/contrib/elftoolchain/elfcopy/pe.c
  projects/clang390-import/contrib/elftoolchain/elfdump/elfdump.c
  projects/clang390-import/contrib/elftoolchain/libelf/elf_flagdata.3
  projects/clang390-import/contrib/elftoolchain/libelftc/Makefile
  projects/clang390-import/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3
  projects/clang390-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c
  projects/clang390-import/contrib/elftoolchain/libelftc/libelftc.h
  projects/clang390-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
  projects/clang390-import/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c
  projects/clang390-import/contrib/elftoolchain/readelf/readelf.1
  projects/clang390-import/contrib/elftoolchain/readelf/readelf.c
  projects/clang390-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
  projects/clang390-import/gnu/lib/libgcc/Makefile
  projects/clang390-import/lib/atf/libatf-c/Makefile
  projects/clang390-import/lib/libc/gen/directory.3
  projects/clang390-import/lib/libc/gen/getvfsbyname.3
  projects/clang390-import/lib/libc/net/getaddrinfo.c
  projects/clang390-import/lib/libc/net/name6.c
  projects/clang390-import/lib/libc/stdio/fgetwc.c
  projects/clang390-import/lib/libc/tests/stdlib/Makefile.depend
  projects/clang390-import/lib/libelftc/Makefile
  projects/clang390-import/lib/libelftc/elftc_version.c
  projects/clang390-import/lib/libproc/Makefile.depend
  projects/clang390-import/lib/libproc/tests/Makefile.depend
  projects/clang390-import/lib/librtld_db/Makefile.depend
  projects/clang390-import/lib/libstand/bootp.c
  projects/clang390-import/lib/libstand/bootp.h
  projects/clang390-import/lib/libstand/globals.c
  projects/clang390-import/lib/libstand/net.h
  projects/clang390-import/lib/libstand/nfs.c
  projects/clang390-import/lib/libstand/tftp.c
  projects/clang390-import/secure/usr.bin/ssh/Makefile.depend
  projects/clang390-import/share/misc/bsd-family-tree
  projects/clang390-import/share/mk/bsd.dep.mk
  projects/clang390-import/share/mk/bsd.init.mk
  projects/clang390-import/share/mk/bsd.obj.mk
  projects/clang390-import/share/mk/bsd.subdir.mk
  projects/clang390-import/share/mk/local.meta.sys.mk
  projects/clang390-import/share/mk/sys.mk
  projects/clang390-import/sys/amd64/amd64/pmap.c
  projects/clang390-import/sys/arm/allwinner/aw_usbphy.c
  projects/clang390-import/sys/arm/arm/cpufunc_asm_xscale_c3.S
  projects/clang390-import/sys/arm/arm/locore-v4.S
  projects/clang390-import/sys/arm/ti/am335x/am335x_prcm.c
  projects/clang390-import/sys/arm/ti/am335x/am335x_scm.h
  projects/clang390-import/sys/arm/ti/am335x/files.am335x
  projects/clang390-import/sys/arm/ti/cpsw/if_cpsw.c
  projects/clang390-import/sys/arm/ti/cpsw/if_cpswreg.h
  projects/clang390-import/sys/arm/ti/ti_scm.c
  projects/clang390-import/sys/arm/xscale/i8134x/crb_machdep.c
  projects/clang390-import/sys/arm/xscale/i8134x/obio.c
  projects/clang390-import/sys/arm/xscale/i8134x/obiovar.h
  projects/clang390-import/sys/arm/xscale/i8134x/uart_cpu_i81342.c
  projects/clang390-import/sys/arm64/arm64/pmap.c
  projects/clang390-import/sys/arm64/arm64/trap.c
  projects/clang390-import/sys/boot/common/dev_net.c
  projects/clang390-import/sys/boot/efi/boot1/Makefile
  projects/clang390-import/sys/boot/efi/libefi/Makefile
  projects/clang390-import/sys/boot/efi/loader/Makefile
  projects/clang390-import/sys/boot/efi/loader/conf.c
  projects/clang390-import/sys/boot/fdt/dts/Makefile
  projects/clang390-import/sys/boot/fdt/dts/riscv/rocket.dts
  projects/clang390-import/sys/boot/fdt/dts/riscv/spike.dts
  projects/clang390-import/sys/boot/forth/loader.4th
  projects/clang390-import/sys/boot/i386/libi386/biosdisk.c
  projects/clang390-import/sys/boot/i386/libi386/pxe.c
  projects/clang390-import/sys/boot/i386/loader/conf.c
  projects/clang390-import/sys/boot/pc98/loader/conf.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h
  projects/clang390-import/sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.c
  projects/clang390-import/sys/contrib/vchiq/interface/vchiq_arm/vchiq_core.c
  projects/clang390-import/sys/dev/bhnd/cores/pmu/bhnd_pmureg.h
  projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.c
  projects/clang390-import/sys/dev/cxgbe/tom/t4_ddp.c
  projects/clang390-import/sys/dev/cxgbe/tom/t4_tom.c
  projects/clang390-import/sys/dev/cxgbe/tom/t4_tom.h
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis.h
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h
  projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h
  projects/clang390-import/sys/dev/hyperv/utilities/hv_timesync.c
  projects/clang390-import/sys/dev/ixl/if_ixlv.c
  projects/clang390-import/sys/dev/ixl/ixl_txrx.c
  projects/clang390-import/sys/dev/netmap/if_ixl_netmap.h
  projects/clang390-import/sys/dev/syscons/syscons.c
  projects/clang390-import/sys/dev/syscons/syscons.h
  projects/clang390-import/sys/i386/i386/pmap.c
  projects/clang390-import/sys/kern/capabilities.conf
  projects/clang390-import/sys/kern/init_sysent.c
  projects/clang390-import/sys/kern/kern_descrip.c
  projects/clang390-import/sys/kern/subr_gtaskqueue.c
  projects/clang390-import/sys/kern/subr_taskqueue.c
  projects/clang390-import/sys/kern/sys_capability.c
  projects/clang390-import/sys/kern/uipc_usrreq.c
  projects/clang390-import/sys/net/ethernet.h
  projects/clang390-import/sys/net/rndis.h
  projects/clang390-import/sys/netipsec/ipsec_input.c
  projects/clang390-import/sys/riscv/riscv/timer.c
  projects/clang390-import/sys/sys/filedesc.h
  projects/clang390-import/sys/vm/swap_pager.c
  projects/clang390-import/targets/pseudo/tests/Makefile.depend
  projects/clang390-import/targets/pseudo/userland/Makefile.depend
  projects/clang390-import/targets/pseudo/userland/cddl/Makefile.depend
  projects/clang390-import/targets/pseudo/userland/libexec/Makefile.depend
  projects/clang390-import/usr.bin/Makefile
  projects/clang390-import/usr.bin/localedef/collate.c
  projects/clang390-import/usr.bin/nfsstat/Makefile.depend
  projects/clang390-import/usr.bin/tar/tests/Makefile.depend
  projects/clang390-import/usr.sbin/bhyve/Makefile.depend
  projects/clang390-import/usr.sbin/pw/tests/Makefile.depend
Directory Properties:
  projects/clang390-import/   (props changed)
  projects/clang390-import/cddl/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/clang390-import/contrib/elftoolchain/   (props changed)
  projects/clang390-import/contrib/elftoolchain/elfdump/   (props changed)
  projects/clang390-import/contrib/gcc/   (props changed)
  projects/clang390-import/contrib/llvm/   (props changed)
  projects/clang390-import/gnu/lib/   (props changed)
  projects/clang390-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang390-import/Makefile
==============================================================================
--- projects/clang390-import/Makefile	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/Makefile	Thu Sep  1 18:16:45 2016	(r305220)
@@ -109,7 +109,8 @@
 
 # Note: we use this awkward construct to be compatible with FreeBSD's
 # old make used in 10.0 and 9.2 and earlier.
-.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig)
+.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && \
+    !make(showconfig) && !make(print-dir)
 # targets/Makefile plays the role of top-level
 .include "targets/Makefile"
 .else
@@ -132,7 +133,7 @@ TGTS=	all all-man buildenv buildenvvars 
 	xdev-links native-xtools stageworld stagekernel stage-packages \
 	create-world-packages create-kernel-packages create-packages \
 	packages installconfig real-packages sign-packages package-pkg \
-	test-system-compiler
+	print-dir test-system-compiler
 
 # XXX: r156740: This can't work since bsd.subdir.mk is not included ever.
 # It will only work for SUBDIR_TARGETS in make.conf.
@@ -257,6 +258,10 @@ _TARGET_ARCH=	${XDEV_ARCH}
 _TARGET?=	${MACHINE}
 _TARGET_ARCH?=	${MACHINE_ARCH}
 
+.if make(print-dir)
+.SILENT:
+.endif
+
 #
 # Make sure we have an up-to-date make(1). Only world and buildworld
 # should do this as those are the initial targets used for upgrades.

Modified: projects/clang390-import/bin/df/df.c
==============================================================================
--- projects/clang390-import/bin/df/df.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/bin/df/df.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -166,6 +166,9 @@ main(int argc, char *argv[])
 			hflag = 0;
 			break;
 		case 'l':
+			/* Ignore duplicate -l */
+			if (lflag)
+				break;
 			if (vfslist != NULL)
 				xo_errx(1, "-l and -t are mutually exclusive.");
 			vfslist = makevfslist(makenetvfslist());

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -60,7 +60,6 @@
 #include <sys/ddt.h>
 #include <sys/zfeature.h>
 #include <zfs_comutil.h>
-#undef ZFS_MAXNAMELEN
 #undef verify
 #include <libzfs.h>
 
@@ -1945,7 +1944,7 @@ dump_dir(objset_t *os)
 	uint64_t refdbytes, usedobjs, scratch;
 	char numbuf[32];
 	char blkbuf[BP_SPRINTF_LEN + 20];
-	char osname[MAXNAMELEN];
+	char osname[ZFS_MAX_DATASET_NAME_LEN];
 	char *type = "UNKNOWN";
 	int verbosity = dump_opt['d'];
 	int print_header = 1;
@@ -3482,7 +3481,7 @@ find_zpool(char **target, nvlist_t **con
 	nvlist_t *match = NULL;
 	char *name = NULL;
 	char *sepp = NULL;
-	char sep;
+	char sep = '\0';
 	int count = 0;
 	importargs_t args = { 0 };
 

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -21,8 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
- * All rights reserved.
+ * Copyright (c) 2012 Pawel Jakub Dawidek. All rights reserved.
  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2013 by Delphix. All rights reserved.
  */
@@ -320,8 +319,8 @@ zfs_sort(const void *larg, const void *r
 		} else if (psc->sc_prop == ZFS_PROP_NAME) {
 			lvalid = rvalid = B_TRUE;
 
-			(void) strlcpy(lbuf, zfs_get_name(l), sizeof(lbuf));
-			(void) strlcpy(rbuf, zfs_get_name(r), sizeof(rbuf));
+			(void) strlcpy(lbuf, zfs_get_name(l), sizeof (lbuf));
+			(void) strlcpy(rbuf, zfs_get_name(r), sizeof (rbuf));
 
 			lstr = lbuf;
 			rstr = rbuf;

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h	Thu Sep  1 18:16:45 2016	(r305220)
@@ -22,6 +22,7 @@
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved.
  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  */
 

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -24,13 +24,12 @@
  * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
  * Copyright 2012 Milan Jurik. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
- * Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
- * All rights reserved.
+ * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved.
  * Copyright (c) 2012 Martin Matuska <mm at FreeBSD.org>. All rights reserved.
  * Copyright (c) 2013 Steven Hartland.  All rights reserved.
- * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
  * Copyright 2016 Igor Kozhukhov <ikozhukhov at gmail.com>.
+ * Copyright 2016 Nexenta Systems, Inc.
  */
 
 #include <assert.h>
@@ -1511,7 +1510,7 @@ get_callback(zfs_handle_t *zhp, void *da
 	char buf[ZFS_MAXPROPLEN];
 	char rbuf[ZFS_MAXPROPLEN];
 	zprop_source_t sourcetype;
-	char source[ZFS_MAXNAMELEN];
+	char source[ZFS_MAX_DATASET_NAME_LEN];
 	zprop_get_cbdata_t *cbp = data;
 	nvlist_t *user_props = zfs_get_user_props(zhp);
 	zprop_list_t *pl = cbp->cb_proplist;
@@ -1991,7 +1990,7 @@ typedef struct upgrade_cbdata {
 	uint64_t cb_version;
 	boolean_t cb_newer;
 	boolean_t cb_foundone;
-	char cb_lastfs[ZFS_MAXNAMELEN];
+	char cb_lastfs[ZFS_MAX_DATASET_NAME_LEN];
 } upgrade_cbdata_t;
 
 static int
@@ -2437,7 +2436,7 @@ userspace_cb(void *arg, const char *doma
 
 	if (domain != NULL && domain[0] != '\0') {
 		/* SMB */
-		char sid[ZFS_MAXNAMELEN + 32];
+		char sid[MAXNAMELEN + 32];
 		uid_t id;
 #ifdef illumos
 		int err;
@@ -2574,7 +2573,7 @@ print_us_node(boolean_t scripted, boolea
     size_t *width, us_node_t *node)
 {
 	nvlist_t *nvl = node->usn_nvl;
-	char valstr[ZFS_MAXNAMELEN];
+	char valstr[MAXNAMELEN];
 	boolean_t first = B_TRUE;
 	int cfield = 0;
 	int field;
@@ -3009,7 +3008,7 @@ print_dataset(zfs_handle_t *zhp, list_cb
 
 		if (pl->pl_prop == ZFS_PROP_NAME) {
 			(void) strlcpy(property, zfs_get_name(zhp),
-			    sizeof(property));
+			    sizeof (property));
 			propstr = property;
 			right_justify = zfs_prop_align_right(pl->pl_prop);
 		} else if (pl->pl_prop != ZPROP_INVAL) {
@@ -3473,7 +3472,7 @@ zfs_do_rollback(int argc, char **argv)
 	boolean_t force = B_FALSE;
 	rollback_cbdata_t cb = { 0 };
 	zfs_handle_t *zhp, *snap;
-	char parentname[ZFS_MAXNAMELEN];
+	char parentname[ZFS_MAX_DATASET_NAME_LEN];
 	char *delim;
 
 	/* check options */
@@ -3873,7 +3872,7 @@ zfs_do_send(int argc, char **argv)
 	 */
 	if (strchr(argv[0], '@') == NULL ||
 	    (fromname && strchr(fromname, '#') != NULL)) {
-		char frombuf[ZFS_MAXNAMELEN];
+		char frombuf[ZFS_MAX_DATASET_NAME_LEN];
 		enum lzc_send_flags lzc_flags = 0;
 
 		if (flags.replicate || flags.doall || flags.props ||
@@ -3925,7 +3924,7 @@ zfs_do_send(int argc, char **argv)
 	 * case if they specify the origin.
 	 */
 	if (fromname && (cp = strchr(fromname, '@')) != NULL) {
-		char origin[ZFS_MAXNAMELEN];
+		char origin[ZFS_MAX_DATASET_NAME_LEN];
 		zprop_source_t src;
 
 		(void) zfs_prop_get(zhp, ZFS_PROP_ORIGIN,
@@ -4059,7 +4058,7 @@ zfs_do_receive(int argc, char **argv)
 			usage(B_FALSE);
 		}
 
-		char namebuf[ZFS_MAXNAMELEN];
+		char namebuf[ZFS_MAX_DATASET_NAME_LEN];
 		(void) snprintf(namebuf, sizeof (namebuf),
 		    "%s/%%recv", argv[0]);
 
@@ -4917,7 +4916,7 @@ store_allow_perm(zfs_deleg_who_type_t ty
 {
 	int i;
 	char ld[2] = { '\0', '\0' };
-	char who_buf[ZFS_MAXNAMELEN+32];
+	char who_buf[MAXNAMELEN + 32];
 	char base_type = '\0';
 	char set_type = '\0';
 	nvlist_t *base_nvl = NULL;
@@ -5285,7 +5284,7 @@ static void
 print_fs_perms(fs_perm_set_t *fspset)
 {
 	fs_perm_node_t *node = NULL;
-	char buf[ZFS_MAXNAMELEN+32];
+	char buf[MAXNAMELEN + 32];
 	const char *dsname = buf;
 
 	for (node = uu_list_first(fspset->fsps_list); node != NULL;
@@ -5294,7 +5293,7 @@ print_fs_perms(fs_perm_set_t *fspset)
 		uu_avl_t *uge_avl = node->fspn_fsperm.fsp_uge_avl;
 		int left = 0;
 
-		(void) snprintf(buf, ZFS_MAXNAMELEN+32,
+		(void) snprintf(buf, sizeof (buf),
 		    gettext("---- Permissions on %s "),
 		    node->fspn_fsperm.fsp_name);
 		(void) printf(dsname);
@@ -5491,7 +5490,7 @@ zfs_do_hold_rele_impl(int argc, char **a
 
 	for (i = 0; i < argc; ++i) {
 		zfs_handle_t *zhp;
-		char parent[ZFS_MAXNAMELEN];
+		char parent[ZFS_MAX_DATASET_NAME_LEN];
 		const char *delim;
 		char *path = argv[i];
 
@@ -5624,7 +5623,7 @@ holds_callback(zfs_handle_t *zhp, void *
 	nvlist_t *nvl = NULL;
 	nvpair_t *nvp = NULL;
 	const char *zname = zfs_get_name(zhp);
-	size_t znamelen = strnlen(zname, ZFS_MAXNAMELEN);
+	size_t znamelen = strlen(zname);
 
 	if (cbp->cb_recursive && cbp->cb_snapname != NULL) {
 		const char *snapname;
@@ -5645,7 +5644,7 @@ holds_callback(zfs_handle_t *zhp, void *
 
 	while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) {
 		const char *tag = nvpair_name(nvp);
-		size_t taglen = strnlen(tag, MAXNAMELEN);
+		size_t taglen = strlen(tag);
 		if (taglen > cbp->cb_max_taglen)
 			cbp->cb_max_taglen  = taglen;
 	}
@@ -6484,6 +6483,15 @@ unshare_unmount(int op, int argc, char *
 				continue;
 			}
 
+			/*
+			 * Ignore datasets that are excluded/restricted by
+			 * parent pool name.
+			 */
+			if (zpool_skip_pool(zfs_get_pool_name(zhp))) {
+				zfs_close(zhp);
+				continue;
+			}
+
 			switch (op) {
 			case OP_SHARE:
 				verify(zfs_prop_get(zhp, ZFS_PROP_SHARENFS,
@@ -6973,7 +6981,7 @@ zfs_do_diff(int argc, char **argv)
 static int
 zfs_do_bookmark(int argc, char **argv)
 {
-	char snapname[ZFS_MAXNAMELEN];
+	char snapname[ZFS_MAX_DATASET_NAME_LEN];
 	zfs_handle_t *zhp;
 	nvlist_t *nvl;
 	int ret = 0;

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -48,7 +48,6 @@
 #include <sys/zio_compress.h>
 #include <sys/zfeature.h>
 #include <sys/dmu_tx.h>
-#undef ZFS_MAXNAMELEN
 #undef verify
 #include <libzfs.h>
 

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -4540,7 +4540,7 @@ zpool_do_status(int argc, char **argv)
 typedef struct upgrade_cbdata {
 	boolean_t	cb_first;
 	boolean_t	cb_unavail;
-	char		cb_poolname[ZPOOL_MAXNAMELEN];
+	char		cb_poolname[ZFS_MAX_DATASET_NAME_LEN];
 	int		cb_argc;
 	uint64_t	cb_version;
 	char		**cb_argv;

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
  * Copyright 2016 Igor Kozhukhov <ikozhukhov at gmail.com>.
  */
 
@@ -597,7 +597,6 @@ get_replication(nvlist_t *nvroot, boolea
 	verify(nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN,
 	    &top, &toplevels) == 0);
 
-	lastrep.zprl_type = NULL;
 	for (t = 0; t < toplevels; t++) {
 		uint64_t is_log = B_FALSE;
 

Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -141,8 +141,8 @@ typedef struct ztest_shared_hdr {
 static ztest_shared_hdr_t *ztest_shared_hdr;
 
 typedef struct ztest_shared_opts {
-	char zo_pool[MAXNAMELEN];
-	char zo_dir[MAXNAMELEN];
+	char zo_pool[ZFS_MAX_DATASET_NAME_LEN];
+	char zo_dir[ZFS_MAX_DATASET_NAME_LEN];
 	char zo_alt_ztest[MAXNAMELEN];
 	char zo_alt_libpath[MAXNAMELEN];
 	uint64_t zo_vdevs;
@@ -268,7 +268,7 @@ typedef struct ztest_od {
 	uint64_t	od_crblocksize;
 	uint64_t	od_gen;
 	uint64_t	od_crgen;
-	char		od_name[MAXNAMELEN];
+	char		od_name[ZFS_MAX_DATASET_NAME_LEN];
 } ztest_od_t;
 
 /*
@@ -280,7 +280,7 @@ typedef struct ztest_ds {
 	rwlock_t	zd_zilog_lock;
 	zilog_t		*zd_zilog;
 	ztest_od_t	*zd_od;		/* debugging aid */
-	char		zd_name[MAXNAMELEN];
+	char		zd_name[ZFS_MAX_DATASET_NAME_LEN];
 	mutex_t		zd_dirobj_lock;
 	rll_t		zd_object_lock[ZTEST_OBJECT_LOCKS];
 	rll_t		zd_range_lock[ZTEST_RANGE_LOCKS];
@@ -3227,7 +3227,7 @@ ztest_objset_destroy_cb(const char *name
 static boolean_t
 ztest_snapshot_create(char *osname, uint64_t id)
 {
-	char snapname[MAXNAMELEN];
+	char snapname[ZFS_MAX_DATASET_NAME_LEN];
 	int error;
 
 	(void) snprintf(snapname, sizeof (snapname), "%llu", (u_longlong_t)id);
@@ -3247,10 +3247,10 @@ ztest_snapshot_create(char *osname, uint
 static boolean_t
 ztest_snapshot_destroy(char *osname, uint64_t id)
 {
-	char snapname[MAXNAMELEN];
+	char snapname[ZFS_MAX_DATASET_NAME_LEN];
 	int error;
 
-	(void) snprintf(snapname, MAXNAMELEN, "%s@%llu", osname,
+	(void) snprintf(snapname, sizeof (snapname), "%s@%llu", osname,
 	    (u_longlong_t)id);
 
 	error = dsl_destroy_snapshot(snapname, B_FALSE);
@@ -3267,12 +3267,12 @@ ztest_dmu_objset_create_destroy(ztest_ds
 	int iters;
 	int error;
 	objset_t *os, *os2;
-	char name[MAXNAMELEN];
+	char name[ZFS_MAX_DATASET_NAME_LEN];
 	zilog_t *zilog;
 
 	(void) rw_rdlock(&ztest_name_lock);
 
-	(void) snprintf(name, MAXNAMELEN, "%s/temp_%llu",
+	(void) snprintf(name, sizeof (name), "%s/temp_%llu",
 	    ztest_opts.zo_pool, (u_longlong_t)id);
 
 	/*
@@ -3378,18 +3378,23 @@ ztest_dmu_snapshot_create_destroy(ztest_
 void
 ztest_dsl_dataset_cleanup(char *osname, uint64_t id)
 {
-	char snap1name[MAXNAMELEN];
-	char clone1name[MAXNAMELEN];
-	char snap2name[MAXNAMELEN];
-	char clone2name[MAXNAMELEN];
-	char snap3name[MAXNAMELEN];
+	char snap1name[ZFS_MAX_DATASET_NAME_LEN];
+	char clone1name[ZFS_MAX_DATASET_NAME_LEN];
+	char snap2name[ZFS_MAX_DATASET_NAME_LEN];
+	char clone2name[ZFS_MAX_DATASET_NAME_LEN];
+	char snap3name[ZFS_MAX_DATASET_NAME_LEN];
 	int error;
 
-	(void) snprintf(snap1name, MAXNAMELEN, "%s at s1_%llu", osname, id);
-	(void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id);
-	(void) snprintf(snap2name, MAXNAMELEN, "%s at s2_%llu", clone1name, id);
-	(void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id);
-	(void) snprintf(snap3name, MAXNAMELEN, "%s at s3_%llu", clone1name, id);
+	(void) snprintf(snap1name, sizeof (snap1name),
+	    "%s at s1_%llu", osname, id);
+	(void) snprintf(clone1name, sizeof (clone1name),
+	    "%s/c1_%llu", osname, id);
+	(void) snprintf(snap2name, sizeof (snap2name),
+	    "%s at s2_%llu", clone1name, id);
+	(void) snprintf(clone2name, sizeof (clone2name),
+	    "%s/c2_%llu", osname, id);
+	(void) snprintf(snap3name, sizeof (snap3name),
+	    "%s at s3_%llu", clone1name, id);
 
 	error = dsl_destroy_head(clone2name);
 	if (error && error != ENOENT)
@@ -3415,11 +3420,11 @@ void
 ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_t id)
 {
 	objset_t *os;
-	char snap1name[MAXNAMELEN];
-	char clone1name[MAXNAMELEN];
-	char snap2name[MAXNAMELEN];
-	char clone2name[MAXNAMELEN];
-	char snap3name[MAXNAMELEN];
+	char snap1name[ZFS_MAX_DATASET_NAME_LEN];
+	char clone1name[ZFS_MAX_DATASET_NAME_LEN];
+	char snap2name[ZFS_MAX_DATASET_NAME_LEN];
+	char clone2name[ZFS_MAX_DATASET_NAME_LEN];
+	char snap3name[ZFS_MAX_DATASET_NAME_LEN];
 	char *osname = zd->zd_name;
 	int error;
 
@@ -3427,11 +3432,16 @@ ztest_dsl_dataset_promote_busy(ztest_ds_
 
 	ztest_dsl_dataset_cleanup(osname, id);
 
-	(void) snprintf(snap1name, MAXNAMELEN, "%s at s1_%llu", osname, id);
-	(void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id);
-	(void) snprintf(snap2name, MAXNAMELEN, "%s at s2_%llu", clone1name, id);
-	(void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id);
-	(void) snprintf(snap3name, MAXNAMELEN, "%s at s3_%llu", clone1name, id);
+	(void) snprintf(snap1name, sizeof (snap1name),
+	    "%s at s1_%llu", osname, id);
+	(void) snprintf(clone1name, sizeof (clone1name),
+	    "%s/c1_%llu", osname, id);
+	(void) snprintf(snap2name, sizeof (snap2name),
+	    "%s at s2_%llu", clone1name, id);
+	(void) snprintf(clone2name, sizeof (clone2name),
+	    "%s/c2_%llu", osname, id);
+	(void) snprintf(snap3name, sizeof (snap3name),
+	    "%s at s3_%llu", clone1name, id);
 
 	error = dmu_objset_snapshot_one(osname, strchr(snap1name, '@') + 1);
 	if (error && error != EEXIST) {
@@ -4249,7 +4259,7 @@ ztest_fzap(ztest_ds_t *zd, uint64_t id)
 	 * 2050 entries we should see ptrtbl growth and leaf-block split.
 	 */
 	for (int i = 0; i < 2050; i++) {
-		char name[MAXNAMELEN];
+		char name[ZFS_MAX_DATASET_NAME_LEN];
 		uint64_t value = i;
 		dmu_tx_t *tx;
 		int error;
@@ -4654,7 +4664,7 @@ ztest_dmu_snapshot_hold(ztest_ds_t *zd, 
 	char fullname[100];
 	char clonename[100];
 	char tag[100];
-	char osname[MAXNAMELEN];
+	char osname[ZFS_MAX_DATASET_NAME_LEN];
 	nvlist_t *holds;
 
 	(void) rw_rdlock(&ztest_name_lock);
@@ -5450,13 +5460,13 @@ ztest_thread(void *arg)
 static void
 ztest_dataset_name(char *dsname, char *pool, int d)
 {
-	(void) snprintf(dsname, MAXNAMELEN, "%s/ds_%d", pool, d);
+	(void) snprintf(dsname, ZFS_MAX_DATASET_NAME_LEN, "%s/ds_%d", pool, d);
 }
 
 static void
 ztest_dataset_destroy(int d)
 {
-	char name[MAXNAMELEN];
+	char name[ZFS_MAX_DATASET_NAME_LEN];
 
 	ztest_dataset_name(name, ztest_opts.zo_pool, d);
 
@@ -5505,7 +5515,7 @@ ztest_dataset_open(int d)
 	uint64_t committed_seq = ZTEST_GET_SHARED_DS(d)->zd_seq;
 	objset_t *os;
 	zilog_t *zilog;
-	char name[MAXNAMELEN];
+	char name[ZFS_MAX_DATASET_NAME_LEN];
 	int error;
 
 	ztest_dataset_name(name, ztest_opts.zo_pool, d);
@@ -5728,8 +5738,8 @@ ztest_run(ztest_shared_t *zs)
 	 * different name.
 	 */
 	if (ztest_random(2) == 0) {
-		char name[MAXNAMELEN];
-		(void) snprintf(name, MAXNAMELEN, "%s_import",
+		char name[ZFS_MAX_DATASET_NAME_LEN];
+		(void) snprintf(name, sizeof (name), "%s_import",
 		    ztest_opts.zo_pool);
 		ztest_spa_import_export(ztest_opts.zo_pool, name);
 		ztest_spa_import_export(name, ztest_opts.zo_pool);
@@ -6297,7 +6307,7 @@ main(int argc, char **argv)
 		if (spa_open(ztest_opts.zo_pool, &spa, FTAG) == 0) {
 			spa_close(spa, FTAG);
 		} else {
-			char tmpname[MAXNAMELEN];
+			char tmpname[ZFS_MAX_DATASET_NAME_LEN];
 			kernel_fini();
 			kernel_init(FREAD | FWRITE);
 			(void) snprintf(tmpname, sizeof (tmpname), "%s_tmp",

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -26,7 +26,7 @@
 #include <solaris.h>
 #include <inttypes.h>
 #include <unistd.h>
-#include <strings.h>
+#include <string.h>
 #include <libintl.h>
 #include <stdarg.h>
 #include "libnvpair.h"
@@ -1228,7 +1228,8 @@ nvpair_value_match_regex(nvpair_t *nvp, 
 		break;
 	}
 	case DATA_TYPE_BOOLEAN_VALUE: {
-		boolean_t val, val_arg;
+		int32_t val_arg;
+		boolean_t val;
 
 		/* scanf boolean_t from value and check for match */
 		sr = sscanf(value, "%"SCNi32, &val_arg);
@@ -1239,7 +1240,8 @@ nvpair_value_match_regex(nvpair_t *nvp, 
 		break;
 	}
 	case DATA_TYPE_BOOLEAN_ARRAY: {
-		boolean_t *val_array, val_arg;
+		boolean_t *val_array;
+		int32_t val_arg;
 
 		/* check indexed value of array for match */
 		sr = sscanf(value, "%"SCNi32, &val_arg);

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Thu Sep  1 18:16:45 2016	(r305220)
@@ -21,14 +21,13 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2011 Pawel Jakub Dawidek <pawel at dawidek.net>.
- * All rights reserved.
+ * Copyright (c) 2011 Pawel Jakub Dawidek. All rights reserved.
  * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  * Copyright (c) 2012 Martin Matuska <mm at FreeBSD.org>. All rights reserved.
  * Copyright (c) 2013 Steven Hartland. All rights reserved.
- * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
+ * Copyright 2016 Nexenta Systems, Inc.
  */
 
 #ifndef	_LIBZFS_H
@@ -52,8 +51,6 @@ extern "C" {
 /*
  * Miscellaneous ZFS constants
  */
-#define	ZFS_MAXNAMELEN		MAXNAMELEN
-#define	ZPOOL_MAXNAMELEN	MAXNAMELEN
 #define	ZFS_MAXPROPLEN		MAXPATHLEN
 #define	ZPOOL_MAXPROPLEN	MAXPATHLEN
 
@@ -222,6 +219,7 @@ extern void zpool_free_handles(libzfs_ha
  */
 typedef int (*zpool_iter_f)(zpool_handle_t *, void *);
 extern int zpool_iter(libzfs_handle_t *, zpool_iter_f, void *);
+extern boolean_t zpool_skip_pool(const char *);
 
 /*
  * Functions to create and destroy pools
@@ -412,6 +410,7 @@ extern void zfs_close(zfs_handle_t *);
 extern zfs_type_t zfs_get_type(const zfs_handle_t *);
 extern const char *zfs_get_name(const zfs_handle_t *);
 extern zpool_handle_t *zfs_get_pool_handle(const zfs_handle_t *);
+extern const char *zfs_get_pool_name(const zfs_handle_t *);
 
 /*
  * Property management functions.  Some functions are shared with the kernel,

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -24,9 +24,10 @@
  * Use is subject to license terms.
  *
  * Portions Copyright 2007 Ramprakash Jelari
- *
  * Copyright (c) 2011 Pawel Jakub Dawidek <pawel at dawidek.net>.
  * All rights reserved.
+ * Copyright (c) 2014, 2015 by Delphix. All rights reserved.
+ * Copyright 2016 Igor Kozhukhov <ikozhukhov at gmail.com>
  */
 
 #include <libintl.h>
@@ -136,6 +137,9 @@ changelist_prefix(prop_changelist_t *clp
 			case ZFS_PROP_SHARESMB:
 				(void) zfs_unshare_smb(cn->cn_handle, NULL);
 				break;
+
+			default:
+				break;
 			}
 		}
 	}
@@ -293,7 +297,7 @@ void
 changelist_rename(prop_changelist_t *clp, const char *src, const char *dst)
 {
 	prop_changenode_t *cn;
-	char newname[ZFS_MAXNAMELEN];
+	char newname[ZFS_MAX_DATASET_NAME_LEN];
 
 	for (cn = uu_list_first(clp->cl_list); cn != NULL;
 	    cn = uu_list_next(clp->cl_list, cn)) {

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -27,6 +27,7 @@
 /*
  * Copyright (c) 2012 by Delphix. All rights reserved.
  * Copyright (c) 2015 by Syneto S.R.L. All rights reserved.
+ * Copyright 2016 Nexenta Systems, Inc.
  */
 
 /*
@@ -338,33 +339,47 @@ zpool_refresh_stats(zpool_handle_t *zhp,
 }
 
 /*
- * If the __ZFS_POOL_RESTRICT environment variable is set we only iterate over
- * pools it lists.
+ * The following environment variables are undocumented
+ * and should be used for testing purposes only:
  *
- * This is an undocumented feature for use during testing only.
+ * __ZFS_POOL_EXCLUDE - don't iterate over the pools it lists
+ * __ZFS_POOL_RESTRICT - iterate only over the pools it lists
  *
  * This function returns B_TRUE if the pool should be skipped
  * during iteration.
  */
-static boolean_t
-check_restricted(const char *poolname)
+boolean_t
+zpool_skip_pool(const char *poolname)
 {
 	static boolean_t initialized = B_FALSE;
-	static char *restricted = NULL;
+	static const char *exclude = NULL;
+	static const char *restricted = NULL;
 
 	const char *cur, *end;
-	int len, namelen;
+	int len;
+	int namelen = strlen(poolname);
 
 	if (!initialized) {
 		initialized = B_TRUE;
+		exclude = getenv("__ZFS_POOL_EXCLUDE");
 		restricted = getenv("__ZFS_POOL_RESTRICT");
 	}
 
+	if (exclude != NULL) {
+		cur = exclude;
+		do {
+			end = strchr(cur, ' ');
+			len = (NULL == end) ? strlen(cur) : (end - cur);
+			if (len == namelen && 0 == strncmp(cur, poolname, len))
+				return (B_TRUE);
+			cur += (len + 1);
+		} while (NULL != end);
+	}
+
 	if (NULL == restricted)
 		return (B_FALSE);
 
 	cur = restricted;
-	namelen = strlen(poolname);
 	do {
 		end = strchr(cur, ' ');
 		len = (NULL == end) ? strlen(cur) : (end - cur);
@@ -402,7 +417,7 @@ zpool_iter(libzfs_handle_t *hdl, zpool_i
 	for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL;
 	    cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) {
 
-		if (check_restricted(cn->cn_name))
+		if (zpool_skip_pool(cn->cn_name))
 			continue;
 
 		if (zpool_open_silent(hdl, cn->cn_name, &zhp) != 0) {
@@ -440,7 +455,7 @@ zfs_iter_root(libzfs_handle_t *hdl, zfs_
 	for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL;
 	    cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) {
 
-		if (check_restricted(cn->cn_name))
+		if (zpool_skip_pool(cn->cn_name))
 			continue;
 
 		if ((zhp = make_dataset_handle(hdl, cn->cn_name)) == NULL)

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Thu Sep  1 18:12:53 2016	(r305219)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Thu Sep  1 18:16:45 2016	(r305220)
@@ -24,12 +24,12 @@
  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
  * Copyright (c) 2012 DEY Storage Systems, Inc.  All rights reserved.
- * Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
- * All rights reserved.
- * Copyright (c) 2012 Martin Matuska <mm at FreeBSD.org>. All rights reserved.
+ * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved.
+ * Copyright (c) 2013 Martin Matuska. All rights reserved.
  * Copyright (c) 2013 Steven Hartland. All rights reserved.
- * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
+ * Copyright 2016 Nexenta Systems, Inc.
+ * Copyright 2016 Igor Kozhukhov <ikozhukhov at gmail.com>
  */
 
 #include <ctype.h>
@@ -79,55 +79,18 @@ zfs_type_to_name(zfs_type_t type)
 		return (dgettext(TEXT_DOMAIN, "snapshot"));
 	case ZFS_TYPE_VOLUME:
 		return (dgettext(TEXT_DOMAIN, "volume"));
+	case ZFS_TYPE_POOL:
+		return (dgettext(TEXT_DOMAIN, "pool"));
+	case ZFS_TYPE_BOOKMARK:
+		return (dgettext(TEXT_DOMAIN, "bookmark"));
+	default:
+		assert(!"unhandled zfs_type_t");
 	}
 
 	return (NULL);
 }
 
 /*
- * Given a path and mask of ZFS types, return a string describing this dataset.
- * This is used when we fail to open a dataset and we cannot get an exact type.
- * We guess what the type would have been based on the path and the mask of
- * acceptable types.
- */
-static const char *
-path_to_str(const char *path, int types)
-{
-	/*
-	 * When given a single type, always report the exact type.
-	 */
-	if (types == ZFS_TYPE_SNAPSHOT)
-		return (dgettext(TEXT_DOMAIN, "snapshot"));
-	if (types == ZFS_TYPE_FILESYSTEM)
-		return (dgettext(TEXT_DOMAIN, "filesystem"));
-	if (types == ZFS_TYPE_VOLUME)
-		return (dgettext(TEXT_DOMAIN, "volume"));
-
-	/*
-	 * The user is requesting more than one type of dataset.  If this is the
-	 * case, consult the path itself.  If we're looking for a snapshot, and
-	 * a '@' is found, then report it as "snapshot".  Otherwise, remove the
-	 * snapshot attribute and try again.
-	 */
-	if (types & ZFS_TYPE_SNAPSHOT) {
-		if (strchr(path, '@') != NULL)
-			return (dgettext(TEXT_DOMAIN, "snapshot"));
-		return (path_to_str(path, types & ~ZFS_TYPE_SNAPSHOT));
-	}
-
-	/*
-	 * The user has requested either filesystems or volumes.
-	 * We have no way of knowing a priori what type this would be, so always
-	 * report it as "filesystem" or "volume", our two primitive types.
-	 */
-	if (types & ZFS_TYPE_FILESYSTEM)
-		return (dgettext(TEXT_DOMAIN, "filesystem"));
-
-	assert(types & ZFS_TYPE_VOLUME);
-	return (dgettext(TEXT_DOMAIN, "volume"));
-}
-
-/*
  * Validate a ZFS path.  This is used even before trying to open the dataset, to
  * provide a more meaningful error message.  We call zfs_error_aux() to
  * explain exactly why the name was not valid.
@@ -188,6 +151,11 @@ zfs_validate_name(libzfs_handle_t *hdl, 
 				zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
 				    "reserved disk name"));
 				break;
+
+			default:
+				zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+				    "(%d) not defined"), why);
+				break;
 			}
 		}
 
@@ -586,7 +554,7 @@ zfs_bookmark_exists(const char *path)
 {
 	nvlist_t *bmarks;
 	nvlist_t *props;
-	char fsname[ZFS_MAXNAMELEN];
+	char fsname[ZFS_MAX_DATASET_NAME_LEN];
 	char *bmark_name;
 	char *pound;
 	int err;
@@ -770,7 +738,8 @@ libzfs_mnttab_fini(libzfs_handle_t *hdl)
 	void *cookie = NULL;
 	mnttab_node_t *mtn;
 
-	while (mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie)) {
+	while ((mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie))
+	    != NULL) {
 		free(mtn->mtn_mt.mnt_special);
 		free(mtn->mtn_mt.mnt_mountp);
 		free(mtn->mtn_mt.mnt_fstype);
@@ -842,7 +811,8 @@ libzfs_mnttab_remove(libzfs_handle_t *hd
 	mnttab_node_t *ret;
 
 	find.mtn_mt.mnt_special = (char *)fsname;
-	if (ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) {
+	if ((ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL))
+	    != NULL) {
 		avl_remove(&hdl->libzfs_mnttab_cache, ret);
 		free(ret->mtn_mt.mnt_special);
 		free(ret->mtn_mt.mnt_mountp);
@@ -1194,6 +1164,13 @@ badlabel:
 					    "component of '%s' is too long"),
 					    propname);
 					break;
+
+				default:
+					zfs_error_aux(hdl,
+					    dgettext(TEXT_DOMAIN,
+					    "(%d) not defined"),
+					    why);
+					break;
 				}
 				(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
 				goto error;
@@ -1312,12 +1289,17 @@ badlabel:
 			}
 
 			break;
+
 		case ZFS_PROP_UTF8ONLY:
 			chosen_utf = (int)intval;
 			break;
+
 		case ZFS_PROP_NORMALIZE:
 			chosen_normal = (int)intval;
 			break;
+
+		default:
+			break;
 		}
 
 		/*
@@ -1366,6 +1348,9 @@ badlabel:
 					goto error;
 				}
 				break;
+
+			default:
+				break;
 			}
 		}
 	}
@@ -1585,7 +1570,7 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl
 	libzfs_handle_t *hdl = zhp->zfs_hdl;
 	nvlist_t *nvl;
 	int nvl_len;
-	int added_resv;
+	int added_resv = 0;
 
 	(void) snprintf(errbuf, sizeof (errbuf),
 	    dgettext(TEXT_DOMAIN, "cannot set property for '%s'"),
@@ -1975,6 +1960,9 @@ get_numeric_property(zfs_handle_t *zhp, 
 		mntopt_on = MNTOPT_NBMAND;
 		mntopt_off = MNTOPT_NONBMAND;
 		break;
+
+	default:
+		break;
 	}
 
 	/*
@@ -2193,7 +2181,7 @@ struct get_clones_arg {
 	uint64_t numclones;
 	nvlist_t *value;
 	const char *origin;
-	char buf[ZFS_MAXNAMELEN];
+	char buf[ZFS_MAX_DATASET_NAME_LEN];
 };
 
 int
@@ -2248,7 +2236,7 @@ zfs_get_clones_nvl(zfs_handle_t *zhp)
 
 		if (gca.numclones != 0) {
 			zfs_handle_t *root;
-			char pool[ZFS_MAXNAMELEN];
+			char pool[ZFS_MAX_DATASET_NAME_LEN];
 			char *cp = pool;
 
 			/* get the pool name */
@@ -2963,6 +2951,15 @@ zfs_get_name(const zfs_handle_t *zhp)
 }
 
 /*
+ * Returns the name of the parent pool for the given zfs handle.
+ */
+const char *
+zfs_get_pool_name(const zfs_handle_t *zhp)
+{
+	return (zhp->zpool_hdl->zpool_name);
+}
+
+/*
  * Returns the type of the given zfs handle.
  */
 zfs_type_t
@@ -3024,7 +3021,7 @@ check_parents(libzfs_handle_t *hdl, cons
     boolean_t accept_ancestor, int *prefixlen)
 {
 	zfs_cmd_t zc = { 0 };
-	char parent[ZFS_MAXNAMELEN];
+	char parent[ZFS_MAX_DATASET_NAME_LEN];
 	char *slash;
 	zfs_handle_t *zhp;
 	char errbuf[1024];
@@ -3152,7 +3149,7 @@ create_parents(libzfs_handle_t *hdl, cha
 	 * up to the prefixlen-long one.
 	 */
 	for (cp = target + prefixlen + 1;
-	    cp = strchr(cp, '/'); *cp = '/', cp++) {
+	    (cp = strchr(cp, '/')) != NULL; *cp = '/', cp++) {
 
 		*cp = '\0';
 
@@ -3204,7 +3201,7 @@ zfs_create_ancestors(libzfs_handle_t *hd
 {
 	int prefix;
 	char *path_copy;
-	int rc;
+	int rc = 0;
 
 	if (check_parents(hdl, path, NULL, B_TRUE, &prefix) != 0)
 		return (-1);
@@ -3263,7 +3260,7 @@ zfs_create(libzfs_handle_t *hdl, const c
 		ost = LZC_DATSET_TYPE_ZFS;
 
 	/* open zpool handle for prop validation */
-	char pool_path[MAXNAMELEN];
+	char pool_path[ZFS_MAX_DATASET_NAME_LEN];
 	(void) strlcpy(pool_path, path, sizeof (pool_path));
 
 	/* truncate pool_path at first slash */
@@ -3332,7 +3329,7 @@ zfs_create(libzfs_handle_t *hdl, const c
 
 	/* check for failure */
 	if (ret != 0) {
-		char parent[ZFS_MAXNAMELEN];
+		char parent[ZFS_MAX_DATASET_NAME_LEN];
 		(void) parent_name(path, parent, sizeof (parent));
 
 		switch (errno) {
@@ -3422,7 +3419,7 @@ static int
 zfs_check_snap_cb(zfs_handle_t *zhp, void *arg)
 {
 	struct destroydata *dd = arg;
-	char name[ZFS_MAXNAMELEN];
+	char name[ZFS_MAX_DATASET_NAME_LEN];
 	int rv = 0;
 
 	(void) snprintf(name, sizeof (name),
@@ -3467,12 +3464,14 @@ int
 zfs_destroy_snaps_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, boolean_t defer)
 {
 	int ret;
-	nvlist_t *errlist;
+	nvlist_t *errlist = NULL;
 
 	ret = lzc_destroy_snaps(snaps, defer, &errlist);
 
-	if (ret == 0)

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


More information about the svn-src-projects mailing list