From owner-svn-src-projects@freebsd.org Thu Sep 1 18:16:48 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AD6DBCB631 for ; Thu, 1 Sep 2016 18:16:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 22C8323F; Thu, 1 Sep 2016 18:16:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81IGlRJ094155; Thu, 1 Sep 2016 18:16:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81IGjVo094139; Thu, 1 Sep 2016 18:16:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609011816.u81IGjVo094139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 1 Sep 2016 18:16:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 18:16:48 -0000 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 #include #include -#undef ZFS_MAXNAMELEN #undef verify #include @@ -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 . - * 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 . - * All rights reserved. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. * Copyright (c) 2012 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 Igor Kozhukhov . + * Copyright 2016 Nexenta Systems, Inc. */ #include @@ -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 #include #include -#undef ZFS_MAXNAMELEN #undef verify #include 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 . */ @@ -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@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@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@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@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 #include #include -#include +#include #include #include #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 . - * 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 . 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 . * All rights reserved. + * Copyright (c) 2014, 2015 by Delphix. All rights reserved. + * Copyright 2016 Igor Kozhukhov */ #include @@ -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 . - * All rights reserved. - * Copyright (c) 2012 Martin Matuska . 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 */ #include @@ -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 ***