From owner-svn-src-user@FreeBSD.ORG Sun Jan 5 22:50:33 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 60C3FEB5; Sun, 5 Jan 2014 22:50:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3EB4D1B4D; Sun, 5 Jan 2014 22:50:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s05MoXVH016282; Sun, 5 Jan 2014 22:50:33 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s05MoWBt016278; Sun, 5 Jan 2014 22:50:32 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401052250.s05MoWBt016278@svn.freebsd.org> From: Julio Merino Date: Sun, 5 Jan 2014 22:50:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260349 - in user/jmmv/autotest: . node node/rc.d X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2014 22:50:33 -0000 Author: jmmv Date: Sun Jan 5 22:50:32 2014 New Revision: 260349 URL: http://svnweb.freebsd.org/changeset/base/260349 Log: Rename the rc.d script to autotest_node. I don't think dashes are easily supported as the 'name' variable of an rc.d script, and the inconsistency between the file name and the rc.conf variables was confusing. (Actually, the setup script was broken because it attempted to start the service using an underscore.) To prevent confusion, just rename the script to autotest_node. Added: user/jmmv/autotest/node/rc.d/autotest_node.in - copied, changed from r260341, user/jmmv/autotest/node/rc.d/autotest-node.in Deleted: user/jmmv/autotest/node/rc.d/autotest-node.in Modified: user/jmmv/autotest/README user/jmmv/autotest/node/Makefile Modified: user/jmmv/autotest/README ============================================================================== --- user/jmmv/autotest/README Sun Jan 5 22:49:54 2014 (r260348) +++ user/jmmv/autotest/README Sun Jan 5 22:50:32 2014 (r260349) @@ -42,4 +42,4 @@ Of special interest are: * node/configs/: Configuration files for node/iterate. node/loop picks all of them up and runs them in sequence. -* node/rc.d/autotest-node: rc.d script to run node/loop as a daemon. +* node/rc.d/autotest_node: rc.d script to run node/loop as a daemon. Modified: user/jmmv/autotest/node/Makefile ============================================================================== --- user/jmmv/autotest/node/Makefile Sun Jan 5 22:49:54 2014 (r260348) +++ user/jmmv/autotest/node/Makefile Sun Jan 5 22:50:32 2014 (r260349) @@ -11,7 +11,7 @@ SYSCONFDIR= ${.CURDIR}/configs SCRIPTS= iterate loop .PHONY: all -all: ${SCRIPTS} rc.d/autotest-node +all: ${SCRIPTS} rc.d/autotest_node .for script in ${SCRIPTS} ${script}: ${script}.sh @@ -21,14 +21,14 @@ ${script}: ${script}.sh "${script}.sh" | "${SHTK}" build -o "${script}" -s "${SHELL}" - .endfor -rc.d/autotest-node: rc.d/autotest-node.in +rc.d/autotest_node: rc.d/autotest_node.in sed -e "s,__AUTOTEST_BINDIR__,${BINDIR},g" \ -e 's,__AUTOTEST_ETCDIR__,${SYSCONFDIR},g' \ -e 's,__AUTOTEST_SHELL__,${SHELL},g' \ -e "s,__AUTOTEST_VARBASE__,${LOCALSTATEDIR},g" \ - rc.d/autotest-node.in >rc.d/autotest-node - chmod +x rc.d/autotest-node + rc.d/autotest_node.in >rc.d/autotest_node + chmod +x rc.d/autotest_node .PHONY: clean clean: - rm -f ${SCRIPTS} rc.d/autotest-node + rm -f ${SCRIPTS} rc.d/autotest_node Copied and modified: user/jmmv/autotest/node/rc.d/autotest_node.in (from r260341, user/jmmv/autotest/node/rc.d/autotest-node.in) ============================================================================== --- user/jmmv/autotest/node/rc.d/autotest-node.in Sun Jan 5 22:38:44 2014 (r260341, copy source) +++ user/jmmv/autotest/node/rc.d/autotest_node.in Sun Jan 5 22:50:32 2014 (r260349) @@ -23,8 +23,8 @@ PATH="/usr/local/bin:/usr/local/sbin:${P name="autotest_node" rcvar="autotest_node_enable" -logfile="__AUTOTEST_VARBASE__/log/autotest-node.log" -pidfile="__AUTOTEST_VARBASE__/run/autotest-node.pid" +logfile="__AUTOTEST_VARBASE__/log/autotest_node.log" +pidfile="__AUTOTEST_VARBASE__/run/autotest_node.pid" command="__AUTOTEST_BINDIR__/loop" command_interpreter="__AUTOTEST_SHELL__" command_args="-b -d 60 -l '${logfile}' -p '${pidfile}'" From owner-svn-src-user@FreeBSD.ORG Tue Jan 7 11:51:01 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5FA19E8E; Tue, 7 Jan 2014 11:51:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4CC3C1FEC; Tue, 7 Jan 2014 11:51:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s07Bp1Bv084819; Tue, 7 Jan 2014 11:51:01 GMT (envelope-from pho@svn.freebsd.org) Received: (from pho@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s07Bp1O0084817; Tue, 7 Jan 2014 11:51:01 GMT (envelope-from pho@svn.freebsd.org) Message-Id: <201401071151.s07Bp1O0084817@svn.freebsd.org> From: Peter Holm Date: Tue, 7 Jan 2014 11:51:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260391 - user/pho/stress2/testcases/symlink X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2014 11:51:01 -0000 Author: pho Date: Tue Jan 7 11:51:00 2014 New Revision: 260391 URL: http://svnweb.freebsd.org/changeset/base/260391 Log: Skip cleanup if not initialized. Sponsored by: EMC / Isilon storage division Modified: user/pho/stress2/testcases/symlink/symlink.c Modified: user/pho/stress2/testcases/symlink/symlink.c ============================================================================== --- user/pho/stress2/testcases/symlink/symlink.c Tue Jan 7 11:43:51 2014 (r260390) +++ user/pho/stress2/testcases/symlink/symlink.c Tue Jan 7 11:51:00 2014 (r260391) @@ -100,9 +100,11 @@ setup(int nb) void cleanup(void) { - (void)chdir(".."); - if (rmdir(path) == -1) { - warn("rmdir(%s), %s:%d", path, __FILE__, __LINE__); + if (path[0] != 0) { + (void)chdir(".."); + if (rmdir(path) == -1) { + warn("rmdir(%s), %s:%d", path, __FILE__, __LINE__); + } } } From owner-svn-src-user@FreeBSD.ORG Wed Jan 8 17:05:01 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C7659DB4; Wed, 8 Jan 2014 17:05:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9AA211D50; Wed, 8 Jan 2014 17:05:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s08H51N5072182; Wed, 8 Jan 2014 17:05:01 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s08H51ds072181; Wed, 8 Jan 2014 17:05:01 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401081705.s08H51ds072181@svn.freebsd.org> From: Julio Merino Date: Wed, 8 Jan 2014 17:05:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260451 - user/jmmv/autotest/node/rc.d X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2014 17:05:01 -0000 Author: jmmv Date: Wed Jan 8 17:05:01 2014 New Revision: 260451 URL: http://svnweb.freebsd.org/changeset/base/260451 Log: Fix svn:ignore property to match the autotest_node rename. Modified: Directory Properties: user/jmmv/autotest/node/rc.d/ (props changed) From owner-svn-src-user@FreeBSD.ORG Wed Jan 8 17:06:12 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7CD2CEB5; Wed, 8 Jan 2014 17:06:12 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 501751D5A; Wed, 8 Jan 2014 17:06:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s08H6Cpd072401; Wed, 8 Jan 2014 17:06:12 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s08H6CoG072400; Wed, 8 Jan 2014 17:06:12 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401081706.s08H6CoG072400@svn.freebsd.org> From: Julio Merino Date: Wed, 8 Jan 2014 17:06:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260452 - user/jmmv/autotest/node X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2014 17:06:12 -0000 Author: jmmv Date: Wed Jan 8 17:06:11 2014 New Revision: 260452 URL: http://svnweb.freebsd.org/changeset/base/260452 Log: Add support to build and test i386 releases. Modified: user/jmmv/autotest/node/iterate.sh Modified: user/jmmv/autotest/node/iterate.sh ============================================================================== --- user/jmmv/autotest/node/iterate.sh Wed Jan 8 17:05:01 2014 (r260451) +++ user/jmmv/autotest/node/iterate.sh Wed Jan 8 17:06:11 2014 (r260452) @@ -41,7 +41,8 @@ shtk_import process # List of valid configuration variables. # # Please remember to update sysbuild.conf(5) if you change this list. -AUTOTEST_CONFIG_VARS="CHROOTDIR DATADIR IMAGE MKVARS SRCBRANCH SVNROOT" +AUTOTEST_CONFIG_VARS="CHROOTDIR DATADIR IMAGE MKVARS SRCBRANCH SVNROOT \ + TARGET TARGET_ARCH" # Paths to installed files. @@ -63,6 +64,8 @@ autotest_set_defaults() { shtk_config_set IMAGE "${AUTOTEST_ROOT}/image.disk" shtk_config_set SRCBRANCH "base/head" shtk_config_set SVNROOT "svn://svn.freebsd.org" + shtk_config_set TARGET "amd64" + shtk_config_set TARGET_ARCH "amd64" } @@ -114,6 +117,8 @@ NOPORTS=yes SRCBRANCH="$(shtk_config_get SRCBRANCH)" SRC_CONF="${src_conf}" SVNROOT="$(shtk_config_get SVNROOT)" +TARGET="$(shtk_config_get TARGET)" +TARGET_ARCH="$(shtk_config_get TARGET_ARCH)" EOF local svnroot="$(shtk_config_get SVNROOT)/$(shtk_config_get SRCBRANCH)" @@ -182,7 +187,10 @@ autotest_mkimage() { shtk_cli_info "Installing system into image" _generate_src_conf >"${chrootdir}/etc/src.conf" - chroot "${chrootdir}" make -s -C /usr/src DESTDIR=/vmimage/mnt \ + chroot "${chrootdir}" make -s -C /usr/src \ + DESTDIR=/vmimage/mnt \ + TARGET="$(shtk_config_get TARGET)" \ + TARGET_ARCH="$(shtk_config_get TARGET_ARCH)" \ installworld installkernel distribution 2>&1 >/dev/null shtk_cli_info "Setting up image configuration" @@ -225,7 +233,23 @@ autotest_execute() { # support qemu so that we can test non-amd64 platforms from our test cluster # machines. In other words: the selection of the VMM has to be exposed in # the configuration file. - shtk_process_run qemu-system-x86_64 -nographic -drive file="${image}" + local target_arch="$(shtk_config_get TARGET_ARCH)" + case "${target_arch}" in + amd64) + shtk_process_run qemu-system-x86_64 -nographic \ + -drive file="${image}" + ;; + + i386) + shtk_process_run qemu-system-i386 -nographic \ + -drive file="${image}" + ;; + + *) + shtk_cli_error "Sorry, don't know how to run tests for" \ + "${target_arch}" + ;; + esac } From owner-svn-src-user@FreeBSD.ORG Wed Jan 8 17:16:25 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E663E10F; Wed, 8 Jan 2014 17:16:25 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D16F31E0A; Wed, 8 Jan 2014 17:16:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s08HGPI7076448; Wed, 8 Jan 2014 17:16:25 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s08HGO5S076440; Wed, 8 Jan 2014 17:16:24 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401081716.s08HGO5S076440@svn.freebsd.org> From: Julio Merino Date: Wed, 8 Jan 2014 17:16:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260453 - in user/jmmv/autotest/node: . configs configs/kyua1 configs/kyua2 X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2014 17:16:26 -0000 Author: jmmv Date: Wed Jan 8 17:16:24 2014 New Revision: 260453 URL: http://svnweb.freebsd.org/changeset/base/260453 Log: Add configs to run i386 tests. This shards the config files into per-machine directories. kyua1 is left to run amd64 tests and kyua2 to run i386 tests, for now at least. Added: user/jmmv/autotest/node/configs/kyua1/ user/jmmv/autotest/node/configs/kyua1/head.conf - copied, changed from r260450, user/jmmv/autotest/node/configs/head.conf user/jmmv/autotest/node/configs/kyua1/stable-10.conf - copied, changed from r260450, user/jmmv/autotest/node/configs/stable-10.conf user/jmmv/autotest/node/configs/kyua2/ user/jmmv/autotest/node/configs/kyua2/head.conf - copied, changed from r260450, user/jmmv/autotest/node/configs/head.conf user/jmmv/autotest/node/configs/kyua2/stable-10.conf - copied, changed from r260450, user/jmmv/autotest/node/configs/stable-10.conf Deleted: user/jmmv/autotest/node/configs/head.conf user/jmmv/autotest/node/configs/stable-10.conf Modified: user/jmmv/autotest/node/Makefile Modified: user/jmmv/autotest/node/Makefile ============================================================================== --- user/jmmv/autotest/node/Makefile Wed Jan 8 17:06:11 2014 (r260452) +++ user/jmmv/autotest/node/Makefile Wed Jan 8 17:16:24 2014 (r260453) @@ -6,7 +6,8 @@ SHTK?= shtk BINDIR= ${.CURDIR} LOCALSTATEDIR= /var SHELL= /bin/sh -SYSCONFDIR= ${.CURDIR}/configs +CONFIGS_SUBDIR!= hostname -s +SYSCONFDIR= ${.CURDIR}/configs/${CONFIGS_SUBDIR} SCRIPTS= iterate loop Copied and modified: user/jmmv/autotest/node/configs/kyua1/head.conf (from r260450, user/jmmv/autotest/node/configs/head.conf) ============================================================================== --- user/jmmv/autotest/node/configs/head.conf Wed Jan 8 14:42:26 2014 (r260450, copy source) +++ user/jmmv/autotest/node/configs/kyua1/head.conf Wed Jan 8 17:16:24 2014 (r260453) @@ -11,6 +11,9 @@ DATADIR="${root}/data" SRCBRANCH="base/head" MKVARS="NO_CLEAN=yes WITH_TESTS=yes" +TARGET=amd64 +TARGET_ARCH=amd64 + # TODO(jmmv): Remove this. lib32 builds are currently broken in combination # with the test suite, so we ought to fix that instead of disabling lib32. MKVARS="${MKVARS} WITHOUT_LIB32=yes" Copied and modified: user/jmmv/autotest/node/configs/kyua1/stable-10.conf (from r260450, user/jmmv/autotest/node/configs/stable-10.conf) ============================================================================== --- user/jmmv/autotest/node/configs/stable-10.conf Wed Jan 8 14:42:26 2014 (r260450, copy source) +++ user/jmmv/autotest/node/configs/kyua1/stable-10.conf Wed Jan 8 17:16:24 2014 (r260453) @@ -11,6 +11,9 @@ DATADIR="${root}/data" SRCBRANCH="base/stable/10" MKVARS="NO_CLEAN=yes WITH_TESTS=yes" +TARGET=amd64 +TARGET_ARCH=amd64 + # TODO(jmmv): Remove this. lib32 builds are currently broken in combination # with the test suite, so we ought to fix that instead of disabling lib32. MKVARS="${MKVARS} WITHOUT_LIB32=yes" Copied and modified: user/jmmv/autotest/node/configs/kyua2/head.conf (from r260450, user/jmmv/autotest/node/configs/head.conf) ============================================================================== --- user/jmmv/autotest/node/configs/head.conf Wed Jan 8 14:42:26 2014 (r260450, copy source) +++ user/jmmv/autotest/node/configs/kyua2/head.conf Wed Jan 8 17:16:24 2014 (r260453) @@ -11,6 +11,9 @@ DATADIR="${root}/data" SRCBRANCH="base/head" MKVARS="NO_CLEAN=yes WITH_TESTS=yes" +TARGET=i386 +TARGET_ARCH=i386 + # TODO(jmmv): Remove this. lib32 builds are currently broken in combination # with the test suite, so we ought to fix that instead of disabling lib32. MKVARS="${MKVARS} WITHOUT_LIB32=yes" Copied and modified: user/jmmv/autotest/node/configs/kyua2/stable-10.conf (from r260450, user/jmmv/autotest/node/configs/stable-10.conf) ============================================================================== --- user/jmmv/autotest/node/configs/stable-10.conf Wed Jan 8 14:42:26 2014 (r260450, copy source) +++ user/jmmv/autotest/node/configs/kyua2/stable-10.conf Wed Jan 8 17:16:24 2014 (r260453) @@ -11,6 +11,9 @@ DATADIR="${root}/data" SRCBRANCH="base/stable/10" MKVARS="NO_CLEAN=yes WITH_TESTS=yes" +TARGET=i386 +TARGET_ARCH=i386 + # TODO(jmmv): Remove this. lib32 builds are currently broken in combination # with the test suite, so we ought to fix that instead of disabling lib32. MKVARS="${MKVARS} WITHOUT_LIB32=yes" From owner-svn-src-user@FreeBSD.ORG Wed Jan 8 18:16:41 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 82116C60; Wed, 8 Jan 2014 18:16:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6E739132D; Wed, 8 Jan 2014 18:16:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s08IGfJo001050; Wed, 8 Jan 2014 18:16:41 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s08IGfMH001049; Wed, 8 Jan 2014 18:16:41 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401081816.s08IGfMH001049@svn.freebsd.org> From: Julio Merino Date: Wed, 8 Jan 2014 18:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260454 - user/jmmv/autotest/node X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2014 18:16:41 -0000 Author: jmmv Date: Wed Jan 8 18:16:40 2014 New Revision: 260454 URL: http://svnweb.freebsd.org/changeset/base/260454 Log: Fix creation of the 0-LATEST directory. I'm not exactly sure why it was broken in an odd way though, but this seems to fix it. Should take a closer look later. Modified: user/jmmv/autotest/node/iterate.sh Modified: user/jmmv/autotest/node/iterate.sh ============================================================================== --- user/jmmv/autotest/node/iterate.sh Wed Jan 8 17:16:24 2014 (r260453) +++ user/jmmv/autotest/node/iterate.sh Wed Jan 8 18:16:40 2014 (r260454) @@ -302,25 +302,27 @@ autotest_all() { [ ${#} -eq 0 ] || shtk_cli_usage_error "all does not take any arguments" local timestamp=$(date +%Y%m%d-%H%M%S) - local datadir="$(shtk_config_get DATADIR)/${timestamp}" + local datadir="$(shtk_config_get DATADIR)" + local run_datadir="${datadir}/${timestamp}" - mkdir -p "${datadir}" - touch "${datadir}/output.log" + mkdir -p "${run_datadir}" + touch "${run_datadir}/output.log" if ! shtk_bool_check "${quiet}"; then - tail -f "${datadir}/output.log" & + tail -f "${run_datadir}/output.log" & local tail_pid="${!}" eval "kill_tail() { kill '${tail_pid}'; }" shtk_cleanup_register kill_tail fi - exec >>"${datadir}/output.log" 2>&1 + exec >>"${run_datadir}/output.log" 2>&1 ( autotest_release autotest_mkimage autotest_execute - autotest_publish "${datadir}" + autotest_publish "${run_datadir}" ) - ln -sf "${timestamp}" "$(shtk_config_get DATADIR)/0-LATEST" + rm -f "${datadir}/0-LATEST" + ln -s "${timestamp}" "${datadir}/0-LATEST" exec >&- 2>&- if ! shtk_bool_check "${quiet}"; then From owner-svn-src-user@FreeBSD.ORG Thu Jan 9 17:27:04 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 57003B9E; Thu, 9 Jan 2014 17:27:04 +0000 (UTC) Received: from svn.freebsd.org (unknown [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3E9271ACC; Thu, 9 Jan 2014 17:27:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s09HR4ke039394; Thu, 9 Jan 2014 17:27:04 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s09HR2P2039379; Thu, 9 Jan 2014 17:27:02 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201401091727.s09HR2P2039379@svn.freebsd.org> From: Glen Barber Date: Thu, 9 Jan 2014 17:27:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260487 - in user/gjb/hacking/release-embedded: . bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensolaris/cm... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2014 17:27:04 -0000 Author: gjb Date: Thu Jan 9 17:27:00 2014 New Revision: 260487 URL: http://svnweb.freebsd.org/changeset/base/260487 Log: MFH: tracking commit (head@r260486) Sponsored by: The FreeBSD Foundation Added: user/gjb/hacking/release-embedded/lib/msun/ld128/k_expl.h - copied unchanged from r260486, head/lib/msun/ld128/k_expl.h user/gjb/hacking/release-embedded/lib/msun/ld80/k_expl.h - copied unchanged from r260486, head/lib/msun/ld80/k_expl.h user/gjb/hacking/release-embedded/lib/msun/src/e_coshl.c - copied unchanged from r260486, head/lib/msun/src/e_coshl.c user/gjb/hacking/release-embedded/lib/msun/src/e_sinhl.c - copied unchanged from r260486, head/lib/msun/src/e_sinhl.c user/gjb/hacking/release-embedded/lib/msun/src/s_tanhl.c - copied unchanged from r260486, head/lib/msun/src/s_tanhl.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/globs.c - copied unchanged from r260486, head/sbin/fsck_ffs/globs.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c - copied unchanged from r260486, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h - copied unchanged from r260486, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h user/gjb/hacking/release-embedded/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu - copied unchanged from r260486, head/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_reg.h - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_reg.h user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_reg_print.c - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_reg_print.c user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic79xx_seq.h - copied unchanged from r260486, head/sys/dev/aic7xxx/aic79xx_seq.h user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_reg.h - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_reg.h user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_reg_print.c - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_reg_print.c user/gjb/hacking/release-embedded/sys/dev/aic7xxx/aic7xxx_seq.h - copied unchanged from r260486, head/sys/dev/aic7xxx/aic7xxx_seq.h user/gjb/hacking/release-embedded/sys/modules/iwnfw/iwn135/ - copied from r260486, head/sys/modules/iwnfw/iwn135/ user/gjb/hacking/release-embedded/sys/sys/sf_base.h - copied unchanged from r260486, head/sys/sys/sf_base.h Deleted: user/gjb/hacking/release-embedded/sys/arm/tegra/bus_space.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_pci.c user/gjb/hacking/release-embedded/sys/powerpc/include/fdt.h Modified: user/gjb/hacking/release-embedded/COPYRIGHT user/gjb/hacking/release-embedded/Makefile.inc1 user/gjb/hacking/release-embedded/bin/sh/sh.1 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zhack/zhack.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1 user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/lib/pyzfs/common/allow.py user/gjb/hacking/release-embedded/contrib/binutils/gas/config/tc-ia64.c user/gjb/hacking/release-embedded/contrib/binutils/opcodes/ia64-asmtab.c user/gjb/hacking/release-embedded/contrib/byacc/CHANGES user/gjb/hacking/release-embedded/contrib/byacc/VERSION user/gjb/hacking/release-embedded/contrib/byacc/aclocal.m4 user/gjb/hacking/release-embedded/contrib/byacc/config.guess user/gjb/hacking/release-embedded/contrib/byacc/config.sub user/gjb/hacking/release-embedded/contrib/byacc/configure user/gjb/hacking/release-embedded/contrib/byacc/configure.in user/gjb/hacking/release-embedded/contrib/byacc/defs.h user/gjb/hacking/release-embedded/contrib/byacc/main.c user/gjb/hacking/release-embedded/contrib/byacc/makefile.in user/gjb/hacking/release-embedded/contrib/byacc/output.c user/gjb/hacking/release-embedded/contrib/byacc/package/byacc.spec user/gjb/hacking/release-embedded/contrib/byacc/package/debian/changelog user/gjb/hacking/release-embedded/contrib/byacc/reader.c user/gjb/hacking/release-embedded/contrib/byacc/skeleton.c user/gjb/hacking/release-embedded/contrib/byacc/test/calc.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/calc1.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/calc2.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/calc3.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/code_calc.code.c user/gjb/hacking/release-embedded/contrib/byacc/test/code_calc.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/code_error.code.c user/gjb/hacking/release-embedded/contrib/byacc/test/code_error.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/error.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/ftp.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/grammar.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/pure_calc.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/pure_error.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc-s.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc2-s.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc2.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc3-s.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc3.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc4-s.tab.c user/gjb/hacking/release-embedded/contrib/byacc/test/quote_calc4.tab.c user/gjb/hacking/release-embedded/contrib/byacc/yacc.1 user/gjb/hacking/release-embedded/contrib/diff/man/diff3.1 user/gjb/hacking/release-embedded/contrib/gcc/ChangeLog.apple user/gjb/hacking/release-embedded/contrib/gcc/attribs.c user/gjb/hacking/release-embedded/contrib/gcc/c-common.c user/gjb/hacking/release-embedded/contrib/gcc/c-common.h user/gjb/hacking/release-embedded/contrib/gcc/c-convert.c user/gjb/hacking/release-embedded/contrib/gcc/c-cppbuiltin.c user/gjb/hacking/release-embedded/contrib/gcc/c-decl.c user/gjb/hacking/release-embedded/contrib/gcc/c-objc-common.h user/gjb/hacking/release-embedded/contrib/gcc/c-opts.c user/gjb/hacking/release-embedded/contrib/gcc/c-parser.c user/gjb/hacking/release-embedded/contrib/gcc/c-pretty-print.c user/gjb/hacking/release-embedded/contrib/gcc/c-pretty-print.h user/gjb/hacking/release-embedded/contrib/gcc/c-tree.h user/gjb/hacking/release-embedded/contrib/gcc/c-typeck.c user/gjb/hacking/release-embedded/contrib/gcc/c.opt user/gjb/hacking/release-embedded/contrib/gcc/calls.c user/gjb/hacking/release-embedded/contrib/gcc/cgraph.h user/gjb/hacking/release-embedded/contrib/gcc/cgraphunit.c user/gjb/hacking/release-embedded/contrib/gcc/combine.c user/gjb/hacking/release-embedded/contrib/gcc/config/darwin.h user/gjb/hacking/release-embedded/contrib/gcc/convert.c user/gjb/hacking/release-embedded/contrib/gcc/convert.h user/gjb/hacking/release-embedded/contrib/gcc/cp/ChangeLog.apple user/gjb/hacking/release-embedded/contrib/gcc/cp/ChangeLog.gcc43 user/gjb/hacking/release-embedded/contrib/gcc/cp/call.c user/gjb/hacking/release-embedded/contrib/gcc/cp/class.c user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-gimplify.c user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-objcp-common.c user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-objcp-common.h user/gjb/hacking/release-embedded/contrib/gcc/cp/cp-tree.h user/gjb/hacking/release-embedded/contrib/gcc/cp/decl.c user/gjb/hacking/release-embedded/contrib/gcc/cp/decl.h user/gjb/hacking/release-embedded/contrib/gcc/cp/decl2.c user/gjb/hacking/release-embedded/contrib/gcc/cp/error.c user/gjb/hacking/release-embedded/contrib/gcc/cp/init.c user/gjb/hacking/release-embedded/contrib/gcc/cp/mangle.c user/gjb/hacking/release-embedded/contrib/gcc/cp/name-lookup.c user/gjb/hacking/release-embedded/contrib/gcc/cp/name-lookup.h user/gjb/hacking/release-embedded/contrib/gcc/cp/parser.c user/gjb/hacking/release-embedded/contrib/gcc/cp/pt.c user/gjb/hacking/release-embedded/contrib/gcc/cp/semantics.c user/gjb/hacking/release-embedded/contrib/gcc/cp/tree.c user/gjb/hacking/release-embedded/contrib/gcc/cp/typeck.c user/gjb/hacking/release-embedded/contrib/gcc/dbxout.c user/gjb/hacking/release-embedded/contrib/gcc/doc/extend.texi user/gjb/hacking/release-embedded/contrib/gcc/doc/invoke.texi user/gjb/hacking/release-embedded/contrib/gcc/dwarf2.h user/gjb/hacking/release-embedded/contrib/gcc/dwarf2out.c user/gjb/hacking/release-embedded/contrib/gcc/expmed.c user/gjb/hacking/release-embedded/contrib/gcc/expr.c user/gjb/hacking/release-embedded/contrib/gcc/fold-const.c user/gjb/hacking/release-embedded/contrib/gcc/function.c user/gjb/hacking/release-embedded/contrib/gcc/function.h user/gjb/hacking/release-embedded/contrib/gcc/ggc-common.c user/gjb/hacking/release-embedded/contrib/gcc/ggc.h user/gjb/hacking/release-embedded/contrib/gcc/langhooks-def.h user/gjb/hacking/release-embedded/contrib/gcc/langhooks.c user/gjb/hacking/release-embedded/contrib/gcc/langhooks.h user/gjb/hacking/release-embedded/contrib/gcc/stor-layout.c user/gjb/hacking/release-embedded/contrib/gcc/stub-objc.c user/gjb/hacking/release-embedded/contrib/gcc/targhooks.c user/gjb/hacking/release-embedded/contrib/gcc/toplev.c user/gjb/hacking/release-embedded/contrib/gcc/tree-gimple.h user/gjb/hacking/release-embedded/contrib/gcc/tree-nested.c user/gjb/hacking/release-embedded/contrib/gcc/tree.c user/gjb/hacking/release-embedded/contrib/gcc/tree.def user/gjb/hacking/release-embedded/contrib/gcc/tree.h user/gjb/hacking/release-embedded/contrib/gcc/varasm.c user/gjb/hacking/release-embedded/contrib/gcclibs/include/libiberty.h user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/ChangeLog.apple user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/charset.c user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/directives.c user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/internal.h user/gjb/hacking/release-embedded/contrib/gcclibs/libcpp/lex.c user/gjb/hacking/release-embedded/contrib/gcclibs/libiberty/physmem.c user/gjb/hacking/release-embedded/contrib/gperf/doc/gperf.1 user/gjb/hacking/release-embedded/contrib/gperf/src/options.cc user/gjb/hacking/release-embedded/contrib/gperf/src/options.h user/gjb/hacking/release-embedded/contrib/gperf/src/options.icc user/gjb/hacking/release-embedded/contrib/gperf/src/output.cc user/gjb/hacking/release-embedded/contrib/libpcap/ieee80211.h user/gjb/hacking/release-embedded/crypto/openssl/ssl/d1_both.c user/gjb/hacking/release-embedded/crypto/openssl/ssl/s3_both.c user/gjb/hacking/release-embedded/crypto/openssl/ssl/s3_lib.c user/gjb/hacking/release-embedded/crypto/openssl/ssl/ssl_locl.h user/gjb/hacking/release-embedded/crypto/openssl/ssl/t1_enc.c user/gjb/hacking/release-embedded/etc/defaults/rc.conf user/gjb/hacking/release-embedded/etc/devd/usb.conf user/gjb/hacking/release-embedded/gnu/usr.bin/gdb/kgdb/Makefile user/gjb/hacking/release-embedded/gnu/usr.bin/gdb/kgdb/main.c user/gjb/hacking/release-embedded/lib/libc/net/sctp_sys_calls.c user/gjb/hacking/release-embedded/lib/libcasper/libcasper.c user/gjb/hacking/release-embedded/lib/libiconv/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/BIG5/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/EUC/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/EUCTW/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/GBK2K/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/ISO2022/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/JOHAB/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/UES/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/UTF1632/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/UTF7/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/iconv_std/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_parallel/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_serial/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_std/Makefile user/gjb/hacking/release-embedded/lib/libiconv_modules/mapper_zone/Makefile user/gjb/hacking/release-embedded/lib/libkvm/kvm.c user/gjb/hacking/release-embedded/lib/libkvm/kvm_ia64.c user/gjb/hacking/release-embedded/lib/libnetgraph/sock.c user/gjb/hacking/release-embedded/lib/libnv/nvlist.c user/gjb/hacking/release-embedded/lib/libprocstat/zfs/Makefile user/gjb/hacking/release-embedded/lib/libusb/Makefile user/gjb/hacking/release-embedded/lib/libusb/libusb.3 user/gjb/hacking/release-embedded/lib/libusb/libusb.h user/gjb/hacking/release-embedded/lib/libusb/libusb10_io.c user/gjb/hacking/release-embedded/lib/msun/Makefile user/gjb/hacking/release-embedded/lib/msun/Symbol.map user/gjb/hacking/release-embedded/lib/msun/ld128/s_expl.c user/gjb/hacking/release-embedded/lib/msun/ld80/s_expl.c user/gjb/hacking/release-embedded/lib/msun/man/cosh.3 user/gjb/hacking/release-embedded/lib/msun/man/sinh.3 user/gjb/hacking/release-embedded/lib/msun/man/tanh.3 user/gjb/hacking/release-embedded/lib/msun/src/e_cosh.c user/gjb/hacking/release-embedded/lib/msun/src/e_sinh.c user/gjb/hacking/release-embedded/lib/msun/src/imprecise.c user/gjb/hacking/release-embedded/lib/msun/src/math.h user/gjb/hacking/release-embedded/lib/msun/src/s_tanh.c user/gjb/hacking/release-embedded/release/picobsd/build/picobsd user/gjb/hacking/release-embedded/sbin/camcontrol/camcontrol.8 user/gjb/hacking/release-embedded/sbin/camcontrol/camcontrol.c user/gjb/hacking/release-embedded/sbin/casperd/casperd.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/Makefile user/gjb/hacking/release-embedded/sbin/fsck_ffs/dir.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsck.h user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsck_ffs.8 user/gjb/hacking/release-embedded/sbin/fsck_ffs/fsutil.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/main.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/pass1.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/pass1b.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/suj.c user/gjb/hacking/release-embedded/sbin/fsck_ffs/utilities.c user/gjb/hacking/release-embedded/sbin/fsdb/Makefile user/gjb/hacking/release-embedded/sbin/geom/class/eli/geom_eli.c user/gjb/hacking/release-embedded/sbin/kldload/kldload.c user/gjb/hacking/release-embedded/sbin/nvmecontrol/devlist.c user/gjb/hacking/release-embedded/sbin/route/route.c user/gjb/hacking/release-embedded/share/i18n/esdb/UTF/UTF.alias user/gjb/hacking/release-embedded/share/man/man4/netmap.4 user/gjb/hacking/release-embedded/share/man/man4/run.4 user/gjb/hacking/release-embedded/share/man/man9/ieee80211_crypto.9 user/gjb/hacking/release-embedded/share/mk/bsd.sys.mk user/gjb/hacking/release-embedded/sys/Makefile user/gjb/hacking/release-embedded/sys/amd64/amd64/pmap.c user/gjb/hacking/release-embedded/sys/amd64/conf/NOTES user/gjb/hacking/release-embedded/sys/amd64/include/vmm.h user/gjb/hacking/release-embedded/sys/amd64/vmm/amd/amdv.c user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/ept.c user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/ept.h user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmcs.c user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmcs.h user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx.c user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx.h user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_controls.h user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_genassym.c user/gjb/hacking/release-embedded/sys/amd64/vmm/intel/vmx_support.S user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vhpet.c user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic.c user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic.h user/gjb/hacking/release-embedded/sys/amd64/vmm/io/vlapic_priv.h user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm.c user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_ipi.c user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_ipi.h user/gjb/hacking/release-embedded/sys/amd64/vmm/vmm_lapic.c user/gjb/hacking/release-embedded/sys/arm/allwinner/a10_machdep.c user/gjb/hacking/release-embedded/sys/arm/arm/bus_space_generic.c user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c user/gjb/hacking/release-embedded/sys/arm/arm/gic.c user/gjb/hacking/release-embedded/sys/arm/arm/intr.c user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c user/gjb/hacking/release-embedded/sys/arm/arm/nexus.c user/gjb/hacking/release-embedded/sys/arm/arm/trap.c user/gjb/hacking/release-embedded/sys/arm/at91/at91.c user/gjb/hacking/release-embedded/sys/arm/broadcom/bcm2835/bcm2835_fbd.c user/gjb/hacking/release-embedded/sys/arm/broadcom/bcm2835/bcm2835_machdep.c user/gjb/hacking/release-embedded/sys/arm/conf/AC100 user/gjb/hacking/release-embedded/sys/arm/conf/ARMADAXP user/gjb/hacking/release-embedded/sys/arm/conf/ARNDALE user/gjb/hacking/release-embedded/sys/arm/conf/ATMEL user/gjb/hacking/release-embedded/sys/arm/conf/AVILA user/gjb/hacking/release-embedded/sys/arm/conf/BWCT user/gjb/hacking/release-embedded/sys/arm/conf/CAMBRIA user/gjb/hacking/release-embedded/sys/arm/conf/CNS11XXNAS user/gjb/hacking/release-embedded/sys/arm/conf/COSMIC user/gjb/hacking/release-embedded/sys/arm/conf/CUBIEBOARD user/gjb/hacking/release-embedded/sys/arm/conf/CUBIEBOARD2 user/gjb/hacking/release-embedded/sys/arm/conf/DB-78XXX user/gjb/hacking/release-embedded/sys/arm/conf/DB-88F5XXX user/gjb/hacking/release-embedded/sys/arm/conf/DB-88F6XXX user/gjb/hacking/release-embedded/sys/arm/conf/DIGI-CCWMX53 user/gjb/hacking/release-embedded/sys/arm/conf/DOCKSTAR user/gjb/hacking/release-embedded/sys/arm/conf/EA3250 user/gjb/hacking/release-embedded/sys/arm/conf/EB9200 user/gjb/hacking/release-embedded/sys/arm/conf/EFIKA_MX user/gjb/hacking/release-embedded/sys/arm/conf/ETHERNUT5 user/gjb/hacking/release-embedded/sys/arm/conf/HL200 user/gjb/hacking/release-embedded/sys/arm/conf/HL201 user/gjb/hacking/release-embedded/sys/arm/conf/IMX53-QSB user/gjb/hacking/release-embedded/sys/arm/conf/KB920X user/gjb/hacking/release-embedded/sys/arm/conf/LN2410SBC user/gjb/hacking/release-embedded/sys/arm/conf/NSLU user/gjb/hacking/release-embedded/sys/arm/conf/PANDABOARD user/gjb/hacking/release-embedded/sys/arm/conf/QILA9G20 user/gjb/hacking/release-embedded/sys/arm/conf/RADXA user/gjb/hacking/release-embedded/sys/arm/conf/RPI-B user/gjb/hacking/release-embedded/sys/arm/conf/SAM9260EK user/gjb/hacking/release-embedded/sys/arm/conf/SAM9G20EK user/gjb/hacking/release-embedded/sys/arm/conf/SAM9X25EK user/gjb/hacking/release-embedded/sys/arm/conf/SHEEVAPLUG user/gjb/hacking/release-embedded/sys/arm/conf/SN9G45 user/gjb/hacking/release-embedded/sys/arm/conf/TS7800 user/gjb/hacking/release-embedded/sys/arm/conf/ZEDBOARD user/gjb/hacking/release-embedded/sys/arm/freescale/imx/imx51_ipuv3.c user/gjb/hacking/release-embedded/sys/arm/include/fdt.h user/gjb/hacking/release-embedded/sys/arm/include/intr.h user/gjb/hacking/release-embedded/sys/arm/include/ofw_machdep.h user/gjb/hacking/release-embedded/sys/arm/include/psl.h user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_gpio.c user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_machdep.c user/gjb/hacking/release-embedded/sys/arm/lpc/lpc_mmc.c user/gjb/hacking/release-embedded/sys/arm/lpc/lpcreg.h user/gjb/hacking/release-embedded/sys/arm/mv/mv_machdep.c user/gjb/hacking/release-embedded/sys/arm/mv/mv_pci.c user/gjb/hacking/release-embedded/sys/arm/mv/mvvar.h user/gjb/hacking/release-embedded/sys/arm/tegra/files.tegra2 user/gjb/hacking/release-embedded/sys/arm/tegra/tegra2_machdep.c user/gjb/hacking/release-embedded/sys/arm/ti/am335x/am335x_dmtimer.c user/gjb/hacking/release-embedded/sys/arm/ti/ti_machdep.c user/gjb/hacking/release-embedded/sys/arm/versatile/sp804.c user/gjb/hacking/release-embedded/sys/boot/fdt/dts/cubieboard.dts user/gjb/hacking/release-embedded/sys/boot/fdt/dts/cubieboard2.dts user/gjb/hacking/release-embedded/sys/boot/fdt/dts/dockstar.dts user/gjb/hacking/release-embedded/sys/boot/i386/Makefile.inc user/gjb/hacking/release-embedded/sys/boot/i386/boot2/Makefile user/gjb/hacking/release-embedded/sys/boot/i386/gptboot/Makefile user/gjb/hacking/release-embedded/sys/boot/i386/gptzfsboot/Makefile user/gjb/hacking/release-embedded/sys/boot/i386/zfsboot/Makefile user/gjb/hacking/release-embedded/sys/boot/pc98/boot2/Makefile user/gjb/hacking/release-embedded/sys/boot/zfs/zfsimpl.c user/gjb/hacking/release-embedded/sys/cam/scsi/scsi_da.c user/gjb/hacking/release-embedded/sys/cddl/boot/zfs/zfsimpl.h user/gjb/hacking/release-embedded/sys/cddl/compat/opensolaris/sys/time.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/Makefile.files user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/gjb/hacking/release-embedded/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/gjb/hacking/release-embedded/sys/cddl/dev/dtrace/dtrace_load.c user/gjb/hacking/release-embedded/sys/compat/freebsd32/freebsd32_misc.c user/gjb/hacking/release-embedded/sys/conf/files user/gjb/hacking/release-embedded/sys/conf/kern.pre.mk user/gjb/hacking/release-embedded/sys/conf/options user/gjb/hacking/release-embedded/sys/conf/options.arm user/gjb/hacking/release-embedded/sys/dev/aac/aac.c user/gjb/hacking/release-embedded/sys/dev/aacraid/aacraid.c user/gjb/hacking/release-embedded/sys/dev/ahci/ahci.c user/gjb/hacking/release-embedded/sys/dev/ale/if_ale.c user/gjb/hacking/release-embedded/sys/dev/ath/if_ath_rx_edma.c user/gjb/hacking/release-embedded/sys/dev/ath/if_ath_tx.c user/gjb/hacking/release-embedded/sys/dev/bge/if_bge.c user/gjb/hacking/release-embedded/sys/dev/bwi/if_bwi.c user/gjb/hacking/release-embedded/sys/dev/bwn/if_bwn.c user/gjb/hacking/release-embedded/sys/dev/bxe/bxe.c user/gjb/hacking/release-embedded/sys/dev/bxe/ecore_hsi.h user/gjb/hacking/release-embedded/sys/dev/bxe/ecore_sp.c user/gjb/hacking/release-embedded/sys/dev/cxgbe/adapter.h user/gjb/hacking/release-embedded/sys/dev/cxgbe/t4_main.c user/gjb/hacking/release-embedded/sys/dev/cxgbe/t4_sge.c user/gjb/hacking/release-embedded/sys/dev/e1000/if_em.c user/gjb/hacking/release-embedded/sys/dev/e1000/if_igb.c user/gjb/hacking/release-embedded/sys/dev/e1000/if_lem.c user/gjb/hacking/release-embedded/sys/dev/ed/if_ed.c user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_3c503.c user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_pccard.c user/gjb/hacking/release-embedded/sys/dev/ed/if_ed_rtl80x9.c user/gjb/hacking/release-embedded/sys/dev/ed/if_edreg.h user/gjb/hacking/release-embedded/sys/dev/ed/if_edvar.h user/gjb/hacking/release-embedded/sys/dev/ed/tc5299jreg.h user/gjb/hacking/release-embedded/sys/dev/en/midway.c user/gjb/hacking/release-embedded/sys/dev/fb/boot_font.c user/gjb/hacking/release-embedded/sys/dev/fb/gallant12x22.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_common.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_common.h user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_mips.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_powerpc.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdt_x86.c user/gjb/hacking/release-embedded/sys/dev/fdt/fdtbus.c user/gjb/hacking/release-embedded/sys/dev/fdt/simplebus.c user/gjb/hacking/release-embedded/sys/dev/ffec/if_ffec.c user/gjb/hacking/release-embedded/sys/dev/firewire/if_fwe.c user/gjb/hacking/release-embedded/sys/dev/ipw/if_ipw.c user/gjb/hacking/release-embedded/sys/dev/ipw/if_ipwvar.h user/gjb/hacking/release-embedded/sys/dev/iscsi/icl.c user/gjb/hacking/release-embedded/sys/dev/iwi/if_iwi.c user/gjb/hacking/release-embedded/sys/dev/iwi/if_iwivar.h user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwn.c user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwn_devid.h user/gjb/hacking/release-embedded/sys/dev/iwn/if_iwnvar.h user/gjb/hacking/release-embedded/sys/dev/ixgbe/ixgbe.c user/gjb/hacking/release-embedded/sys/dev/malo/if_malo.c user/gjb/hacking/release-embedded/sys/dev/mcd/mcd.c user/gjb/hacking/release-embedded/sys/dev/mpt/mpt.h user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_cam.c user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_pci.c user/gjb/hacking/release-embedded/sys/dev/mpt/mpt_raid.c user/gjb/hacking/release-embedded/sys/dev/mwl/if_mwl.c user/gjb/hacking/release-embedded/sys/dev/my/if_my.c user/gjb/hacking/release-embedded/sys/dev/nand/nand_id.c user/gjb/hacking/release-embedded/sys/dev/nand/nandbus.c user/gjb/hacking/release-embedded/sys/dev/netmap/if_em_netmap.h user/gjb/hacking/release-embedded/sys/dev/netmap/if_igb_netmap.h user/gjb/hacking/release-embedded/sys/dev/netmap/if_lem_netmap.h user/gjb/hacking/release-embedded/sys/dev/netmap/if_re_netmap.h user/gjb/hacking/release-embedded/sys/dev/netmap/ixgbe_netmap.h user/gjb/hacking/release-embedded/sys/dev/netmap/netmap.c user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_freebsd.c user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_generic.c user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_kern.h user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mbq.c user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mbq.h user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mem2.c user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_mem2.h user/gjb/hacking/release-embedded/sys/dev/netmap/netmap_vale.c user/gjb/hacking/release-embedded/sys/dev/nvme/nvme_ctrlr.c user/gjb/hacking/release-embedded/sys/dev/oce/oce_if.c user/gjb/hacking/release-embedded/sys/dev/ral/if_ral_pci.c user/gjb/hacking/release-embedded/sys/dev/ral/rt2560.c user/gjb/hacking/release-embedded/sys/dev/ral/rt2661.c user/gjb/hacking/release-embedded/sys/dev/ral/rt2860.c user/gjb/hacking/release-embedded/sys/dev/scc/scc_dev_z8530.c user/gjb/hacking/release-embedded/sys/dev/sound/pci/maestro.c user/gjb/hacking/release-embedded/sys/dev/tpm/tpm.c user/gjb/hacking/release-embedded/sys/dev/uart/uart_bus_fdt.c user/gjb/hacking/release-embedded/sys/dev/uart/uart_dev_lpc.c user/gjb/hacking/release-embedded/sys/dev/usb/controller/xhci.c user/gjb/hacking/release-embedded/sys/dev/usb/usbdevs user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_rsu.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_rum.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_run.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_runreg.h user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_runvar.h user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_uath.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_upgt.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_ural.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_urtw.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_urtwn.c user/gjb/hacking/release-embedded/sys/dev/usb/wlan/if_zyd.c user/gjb/hacking/release-embedded/sys/dev/vt/hw/vga/vga.c user/gjb/hacking/release-embedded/sys/dev/vt/hw/xboxfb/xboxfb.c user/gjb/hacking/release-embedded/sys/dev/vt/vt_font.c user/gjb/hacking/release-embedded/sys/dev/vxge/vxgehal/vxgehal-ring.c user/gjb/hacking/release-embedded/sys/dev/wi/if_wi.c user/gjb/hacking/release-embedded/sys/dev/wpi/if_wpi.c user/gjb/hacking/release-embedded/sys/dev/wpi/if_wpivar.h user/gjb/hacking/release-embedded/sys/fs/nfs/nfs_var.h user/gjb/hacking/release-embedded/sys/fs/nfs/nfsrvcache.h user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdcache.c user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdkrpc.c user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdport.c user/gjb/hacking/release-embedded/sys/fs/nfsserver/nfs_nfsdsubs.c user/gjb/hacking/release-embedded/sys/ia64/include/atomic.h user/gjb/hacking/release-embedded/sys/kern/kern_cons.c user/gjb/hacking/release-embedded/sys/kern/kern_descrip.c user/gjb/hacking/release-embedded/sys/kern/kern_event.c user/gjb/hacking/release-embedded/sys/kern/sched_4bsd.c user/gjb/hacking/release-embedded/sys/kern/uipc_syscalls.c user/gjb/hacking/release-embedded/sys/mips/conf/TP-WN1043ND.hints user/gjb/hacking/release-embedded/sys/mips/include/fdt.h user/gjb/hacking/release-embedded/sys/modules/aic7xxx/Makefile user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/Makefile user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_isa/Makefile user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahc/ahc_pci/Makefile user/gjb/hacking/release-embedded/sys/modules/aic7xxx/ahd/Makefile user/gjb/hacking/release-embedded/sys/modules/ath/Makefile user/gjb/hacking/release-embedded/sys/modules/drm2/i915kms/Makefile user/gjb/hacking/release-embedded/sys/modules/drm2/radeonkms/Makefile user/gjb/hacking/release-embedded/sys/modules/ibcore/Makefile user/gjb/hacking/release-embedded/sys/modules/ipfilter/Makefile user/gjb/hacking/release-embedded/sys/modules/ipoib/Makefile user/gjb/hacking/release-embedded/sys/modules/iwnfw/Makefile user/gjb/hacking/release-embedded/sys/modules/mlx4/Makefile user/gjb/hacking/release-embedded/sys/modules/mlx4ib/Makefile user/gjb/hacking/release-embedded/sys/modules/mlxen/Makefile user/gjb/hacking/release-embedded/sys/modules/mthca/Makefile user/gjb/hacking/release-embedded/sys/modules/wlan/Makefile user/gjb/hacking/release-embedded/sys/net/ieee8023ad_lacp.c user/gjb/hacking/release-embedded/sys/net/if.c user/gjb/hacking/release-embedded/sys/net/if_lagg.c user/gjb/hacking/release-embedded/sys/net/if_lagg.h user/gjb/hacking/release-embedded/sys/net/if_tap.c user/gjb/hacking/release-embedded/sys/net/if_tun.c user/gjb/hacking/release-embedded/sys/net/netmap.h user/gjb/hacking/release-embedded/sys/net/netmap_user.h user/gjb/hacking/release-embedded/sys/net/radix.c user/gjb/hacking/release-embedded/sys/net/radix.h user/gjb/hacking/release-embedded/sys/net/radix_mpath.c user/gjb/hacking/release-embedded/sys/net/route.c user/gjb/hacking/release-embedded/sys/net/route.h user/gjb/hacking/release-embedded/sys/net/rtsock.c user/gjb/hacking/release-embedded/sys/net/sff8472.h user/gjb/hacking/release-embedded/sys/net80211/ieee80211.h user/gjb/hacking/release-embedded/sys/net80211/ieee80211_adhoc.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_hostap.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_mesh.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_output.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_proto.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_sta.c user/gjb/hacking/release-embedded/sys/net80211/ieee80211_wds.c user/gjb/hacking/release-embedded/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c user/gjb/hacking/release-embedded/sys/netgraph/netflow/netflow.c user/gjb/hacking/release-embedded/sys/netgraph/netflow/netflow_v9.c user/gjb/hacking/release-embedded/sys/netgraph/netflow/ng_netflow.c user/gjb/hacking/release-embedded/sys/netgraph/netflow/ng_netflow.h user/gjb/hacking/release-embedded/sys/netgraph/ng_base.c user/gjb/hacking/release-embedded/sys/netgraph/ng_l2tp.c user/gjb/hacking/release-embedded/sys/netinet/if_ether.c user/gjb/hacking/release-embedded/sys/netinet/in.c user/gjb/hacking/release-embedded/sys/netinet/ip_carp.c user/gjb/hacking/release-embedded/sys/netinet/ip_output.c user/gjb/hacking/release-embedded/sys/netinet6/in6.c user/gjb/hacking/release-embedded/sys/netinet6/in6_ifattach.c user/gjb/hacking/release-embedded/sys/netinet6/in6_src.c user/gjb/hacking/release-embedded/sys/netinet6/in6_var.h user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.c user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h user/gjb/hacking/release-embedded/sys/netinet6/nd6.c user/gjb/hacking/release-embedded/sys/netinet6/nd6_nbr.c user/gjb/hacking/release-embedded/sys/netinet6/nd6_rtr.c user/gjb/hacking/release-embedded/sys/netpfil/ipfw/ip_fw_table.c user/gjb/hacking/release-embedded/sys/netpfil/pf/pf_lb.c user/gjb/hacking/release-embedded/sys/nfs/nfs_fha.c user/gjb/hacking/release-embedded/sys/nfs/nfs_fha.h user/gjb/hacking/release-embedded/sys/ofed/drivers/infiniband/hw/mlx4/Makefile user/gjb/hacking/release-embedded/sys/ofed/drivers/net/mlx4/Makefile user/gjb/hacking/release-embedded/sys/powerpc/powerpc/bus_machdep.c user/gjb/hacking/release-embedded/sys/rpc/svc.c user/gjb/hacking/release-embedded/sys/rpc/svc.h user/gjb/hacking/release-embedded/sys/rpc/svc_dg.c user/gjb/hacking/release-embedded/sys/rpc/svc_vc.c user/gjb/hacking/release-embedded/sys/sys/copyright.h user/gjb/hacking/release-embedded/sys/sys/event.h user/gjb/hacking/release-embedded/sys/sys/pmckern.h user/gjb/hacking/release-embedded/sys/sys/user.h user/gjb/hacking/release-embedded/sys/ufs/ffs/ffs_alloc.c user/gjb/hacking/release-embedded/sys/ufs/ufs/ufs_quota.c user/gjb/hacking/release-embedded/sys/vm/vm_page.c user/gjb/hacking/release-embedded/sys/vm/vm_page.h user/gjb/hacking/release-embedded/sys/vm/vm_phys.c user/gjb/hacking/release-embedded/sys/vm/vm_reserv.c user/gjb/hacking/release-embedded/sys/x86/include/fdt.h user/gjb/hacking/release-embedded/sys/x86/include/ofw_machdep.h user/gjb/hacking/release-embedded/sys/x86/x86/mca.c user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/Makefile user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/dns.c user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/grp.c user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/pwd.c user/gjb/hacking/release-embedded/tools/regression/capsicum/libcapsicum/sysctl.c user/gjb/hacking/release-embedded/tools/test/dtrace/Makefile user/gjb/hacking/release-embedded/tools/tools/net80211/stumbler/stumbler.c user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/ap/ap.c user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/assoc/assoc.c user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/expand/expand.c user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/prga/prga.c user/gjb/hacking/release-embedded/tools/tools/net80211/w00t/redir/redir.c user/gjb/hacking/release-embedded/tools/tools/net80211/wesside/wesside/wesside.c user/gjb/hacking/release-embedded/tools/tools/net80211/wlaninject/wlaninject.c user/gjb/hacking/release-embedded/tools/tools/netmap/bridge.c user/gjb/hacking/release-embedded/tools/tools/netmap/nm_util.c user/gjb/hacking/release-embedded/tools/tools/netmap/nm_util.h user/gjb/hacking/release-embedded/tools/tools/netmap/pcap.c user/gjb/hacking/release-embedded/tools/tools/netmap/pkt-gen.c user/gjb/hacking/release-embedded/tools/tools/netmap/vale-ctl.c user/gjb/hacking/release-embedded/usr.bin/find/find.1 user/gjb/hacking/release-embedded/usr.bin/find/function.c user/gjb/hacking/release-embedded/usr.bin/iscsictl/iscsictl.8 user/gjb/hacking/release-embedded/usr.bin/netstat/if.c user/gjb/hacking/release-embedded/usr.bin/netstat/route.c user/gjb/hacking/release-embedded/usr.bin/whois/whois.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/Makefile user/gjb/hacking/release-embedded/usr.sbin/bhyve/acpi.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/acpi.h user/gjb/hacking/release-embedded/usr.sbin/bhyve/atpic.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/bhyve.8 user/gjb/hacking/release-embedded/usr.sbin/bhyve/bhyverun.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/elcr.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_emul.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_emul.h user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_lpc.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/pci_lpc.h user/gjb/hacking/release-embedded/usr.sbin/bhyve/pit_8254.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/pm.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/post.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/rtc.c user/gjb/hacking/release-embedded/usr.sbin/bhyve/virtio.c user/gjb/hacking/release-embedded/usr.sbin/bhyvectl/bhyvectl.c user/gjb/hacking/release-embedded/usr.sbin/bsdinstall/scripts/wlanconfig user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/BEGEMOT-HAST-MIB.txt user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/hast_snmp.c user/gjb/hacking/release-embedded/usr.sbin/bsnmpd/modules/snmp_hast/hast_tree.def user/gjb/hacking/release-embedded/usr.sbin/makefs/cd9660/iso9660_rrip.c user/gjb/hacking/release-embedded/usr.sbin/makefs/cd9660/iso9660_rrip.h user/gjb/hacking/release-embedded/usr.sbin/mfiutil/Makefile user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/kern.c user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/lock_proc.c user/gjb/hacking/release-embedded/usr.sbin/rpc.lockd/lockd.c Directory Properties: user/gjb/hacking/release-embedded/ (props changed) Modified: user/gjb/hacking/release-embedded/COPYRIGHT ============================================================================== --- user/gjb/hacking/release-embedded/COPYRIGHT Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/COPYRIGHT Thu Jan 9 17:27:00 2014 (r260487) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: user/gjb/hacking/release-embedded/Makefile.inc1 ============================================================================== --- user/gjb/hacking/release-embedded/Makefile.inc1 Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/Makefile.inc1 Thu Jan 9 17:27:00 2014 (r260487) @@ -1369,15 +1369,6 @@ kernel-tools: .MAKE mkdir -p ${MAKEOBJDIRPREFIX}/usr mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ -p ${MAKEOBJDIRPREFIX}/usr >/dev/null -.for _tool in \ - sys/dev/aic7xxx/aicasm - ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ - cd ${.CURDIR}/${_tool} && \ - ${MAKE} DIRPRFX=${_tool}/ obj && \ - ${MAKE} DIRPRFX=${_tool}/ depend && \ - ${MAKE} DIRPRFX=${_tool}/ all && \ - ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX} install -.endfor # # cross-tools: Build cross-building tools Modified: user/gjb/hacking/release-embedded/bin/sh/sh.1 ============================================================================== --- user/gjb/hacking/release-embedded/bin/sh/sh.1 Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/bin/sh/sh.1 Thu Jan 9 17:27:00 2014 (r260487) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 1, 2013 +.Dd January 3, 2014 .Dt SH 1 .Os .Sh NAME @@ -235,10 +235,16 @@ or .Dq Li || operator; or if the command is a pipeline preceded by the .Ic !\& -operator. +keyword. If a shell function is executed and its exit status is explicitly tested, all commands of the function are considered to be tested as well. +.Pp +It is recommended to check for failures explicitly +instead of relying on +.Fl e +because it tends to behave in unexpected ways, +particularly in larger scripts. .It Fl f Li noglob Disable pathname expansion. .It Fl h Li trackall Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Thu Jan 9 17:27:00 2014 (r260487) @@ -14,11 +14,12 @@ .\" .\" Copyright 2012, Richard Lowe. .\" Copyright (c) 2012, Marcelo Araujo . +.\" Copyright (c) 2012 by Delphix. All rights reserved. .\" All Rights Reserved. .\" .\" $FreeBSD$ .\" -.Dd May 10, 2012 +.Dd December 31, 2013 .Dt ZDB 8 .Os .Sh NAME @@ -29,27 +30,35 @@ .Op Fl CumdibcsDvhLXFPA .Op Fl e Op Fl p Ar path... .Op Fl t Ar txg +.Op Fl U Ar cache +.Op Fl M Ar inflight I/Os .Ar poolname .Op Ar object ... .Nm .Op Fl divPA .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache .Ar dataset .Op Ar object ... .Nm .Fl m Op Fl LXFPA .Op Fl t Ar txg .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache .Ar poolname .Nm .Fl R Op Fl A .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache +.Ar poolname .Ar poolname .Ar vdev Ns : Ns Ar offset Ns : Ns Ar size Ns Op Ns : Ns Ar flags .Nm .Fl S .Op Fl AP .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache +.Ar poolname .Ar poolname .Nm .Fl l @@ -205,6 +214,11 @@ flag specifies the path under which devi .It Fl F Attempt to make an unreadable pool readable by trying progressively older transactions. +.It Fl M Ar inflight I/Os +Limit the number of outstanding checksum I/Os to the specified value. +The default value is 200. This option affects the performance of the +.Fl c +option. .It Fl P Print numbers in an unscaled form more amenable to parsing, eg. 1000000 rather than 1M. @@ -218,9 +232,7 @@ options for a means to see the available transaction numbers. .It Fl U Ar cachefile Use a cache file other than -.Pa /etc/zfs/zpool.cache . -This option is only valid with -.Fl C +.Pa /boot/zfs/zpool.cache . .It Fl v Enable verbosity. Specify multiple times for increased verbosity. Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Jan 9 17:27:00 2014 (r260487) @@ -89,6 +89,7 @@ extern void dump_intent_log(zilog_t *); uint64_t *zopt_object = NULL; int zopt_objects = 0; libzfs_handle_t *g_zfs; +uint64_t max_inflight = 200; /* * These libumem hooks provide a reasonable set of defaults for the allocator's @@ -110,16 +111,17 @@ static void usage(void) { (void) fprintf(stderr, - "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]]" - "poolname [object...]\n" - " %s [-divPA] [-e -p path...] dataset [object...]\n" - " %s -m [-LXFPA] [-t txg] [-e [-p path...]]" - "poolname [vdev [metaslab...]]\n" - " %s -R [-A] [-e [-p path...]] poolname " - "vdev:offset:size[:flags]\n" - " %s -S [-PA] [-e [-p path...]] poolname\n" - " %s -l [-uA] device\n" - " %s -C [-A] [-U config]\n\n", + "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]] " + "[-U config] [-M inflight I/Os] poolname [object...]\n" + " %s [-divPA] [-e -p path...] [-U config] dataset " + "[object...]\n" + " %s -m [-LXFPA] [-t txg] [-e [-p path...]] [-U config] " + "poolname [vdev [metaslab...]]\n" + " %s -R [-A] [-e [-p path...]] poolname " + "vdev:offset:size[:flags]\n" + " %s -S [-PA] [-e [-p path...]] [-U config] poolname\n" + " %s -l [-uA] device\n" + " %s -C [-A] [-U config]\n\n", cmdname, cmdname, cmdname, cmdname, cmdname, cmdname, cmdname); (void) fprintf(stderr, " Dataset name must include at least one " @@ -164,6 +166,8 @@ usage(void) (void) fprintf(stderr, " -P print numbers in parseable form\n"); (void) fprintf(stderr, " -t -- highest txg to use when " "searching for uberblocks\n"); + (void) fprintf(stderr, " -M -- " + "specify the maximum number of checksumming I/Os [default is 200]"); (void) fprintf(stderr, "Specify an option more than once (e.g. -bb) " "to make only that option verbose\n"); (void) fprintf(stderr, "Default is to dump everything non-verbosely\n"); @@ -760,7 +764,7 @@ dump_dde(const ddt_t *ddt, const ddt_ent if (ddp->ddp_phys_birth == 0) continue; ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); - sprintf_blkptr(blkbuf, &blk); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &blk); (void) printf("index %llx refcnt %llu %s %s\n", (u_longlong_t)index, (u_longlong_t)ddp->ddp_refcnt, types[p], blkbuf); @@ -1020,31 +1024,39 @@ blkid2offset(const dnode_phys_t *dnp, co } static void -sprintf_blkptr_compact(char *blkbuf, const blkptr_t *bp) +snprintf_blkptr_compact(char *blkbuf, size_t buflen, const blkptr_t *bp) { const dva_t *dva = bp->blk_dva; int ndvas = dump_opt['d'] > 5 ? BP_GET_NDVAS(bp) : 1; if (dump_opt['b'] >= 6) { - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, buflen, bp); return; } blkbuf[0] = '\0'; for (int i = 0; i < ndvas; i++) - (void) sprintf(blkbuf + strlen(blkbuf), "%llu:%llx:%llx ", + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), "%llu:%llx:%llx ", (u_longlong_t)DVA_GET_VDEV(&dva[i]), (u_longlong_t)DVA_GET_OFFSET(&dva[i]), (u_longlong_t)DVA_GET_ASIZE(&dva[i])); - (void) sprintf(blkbuf + strlen(blkbuf), - "%llxL/%llxP F=%llu B=%llu/%llu", - (u_longlong_t)BP_GET_LSIZE(bp), - (u_longlong_t)BP_GET_PSIZE(bp), - (u_longlong_t)bp->blk_fill, - (u_longlong_t)bp->blk_birth, - (u_longlong_t)BP_PHYSICAL_BIRTH(bp)); + if (BP_IS_HOLE(bp)) { + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), "B=%llu", + (u_longlong_t)bp->blk_birth); + } else { + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), + "%llxL/%llxP F=%llu B=%llu/%llu", + (u_longlong_t)BP_GET_LSIZE(bp), + (u_longlong_t)BP_GET_PSIZE(bp), + (u_longlong_t)bp->blk_fill, + (u_longlong_t)bp->blk_birth, + (u_longlong_t)BP_PHYSICAL_BIRTH(bp)); + } } static void @@ -1069,7 +1081,7 @@ print_indirect(blkptr_t *bp, const zbook } } - sprintf_blkptr_compact(blkbuf, bp); + snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp); (void) printf("%s\n", blkbuf); } @@ -1084,7 +1096,7 @@ visit_indirect(spa_t *spa, const dnode_p print_indirect(bp, zb, dnp); - if (BP_GET_LEVEL(bp) > 0) { + if (BP_GET_LEVEL(bp) > 0 && !BP_IS_HOLE(bp)) { uint32_t flags = ARC_WAIT; int i; blkptr_t *cbp; @@ -1209,7 +1221,7 @@ dump_dsl_dataset(objset_t *os, uint64_t zdb_nicenum(ds->ds_compressed_bytes, compressed); zdb_nicenum(ds->ds_uncompressed_bytes, uncompressed); zdb_nicenum(ds->ds_unique_bytes, unique); - sprintf_blkptr(blkbuf, &ds->ds_bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &ds->ds_bp); (void) printf("\t\tdir_obj = %llu\n", (u_longlong_t)ds->ds_dir_obj); @@ -1254,7 +1266,7 @@ dump_bptree_cb(void *arg, const blkptr_t char blkbuf[BP_SPRINTF_LEN]; if (bp->blk_birth != 0) { - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("\t%s\n", blkbuf); } return (0); @@ -1292,7 +1304,7 @@ dump_bpobj_cb(void *arg, const blkptr_t char blkbuf[BP_SPRINTF_LEN]; ASSERT(bp->blk_birth != 0); - sprintf_blkptr_compact(blkbuf, bp); + snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp); (void) printf("\t%s\n", blkbuf); return (0); } @@ -1791,8 +1803,9 @@ dump_dir(objset_t *os) zdb_nicenum(refdbytes, numbuf); if (verbosity >= 4) { - (void) sprintf(blkbuf, ", rootbp "); - (void) sprintf_blkptr(blkbuf + strlen(blkbuf), os->os_rootbp); + (void) snprintf(blkbuf, sizeof (blkbuf), ", rootbp "); + (void) snprintf_blkptr(blkbuf + strlen(blkbuf), + sizeof (blkbuf) - strlen(blkbuf), os->os_rootbp); } else { blkbuf[0] = '\0'; } @@ -1822,7 +1835,7 @@ dump_dir(objset_t *os) if (verbosity < 2) return; - if (os->os_rootbp->blk_birth == 0) + if (BP_IS_HOLE(os->os_rootbp)) return; dump_object(os, 0, verbosity, &print_header); @@ -1863,7 +1876,7 @@ dump_uberblock(uberblock_t *ub, const ch (u_longlong_t)ub->ub_timestamp, asctime(localtime(×tamp))); if (dump_opt['u'] >= 3) { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, &ub->ub_rootbp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &ub->ub_rootbp); (void) printf("\trootbp = %s\n", blkbuf); } (void) printf(footer ? footer : ""); @@ -2154,16 +2167,68 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t * bp, NULL, NULL, ZIO_FLAG_CANFAIL)), ==, 0); } +/* ARGSUSED */ +static void +zdb_blkptr_done(zio_t *zio) +{ + spa_t *spa = zio->io_spa; + blkptr_t *bp = zio->io_bp; + int ioerr = zio->io_error; + zdb_cb_t *zcb = zio->io_private; + zbookmark_t *zb = &zio->io_bookmark; + + zio_data_buf_free(zio->io_data, zio->io_size); + + mutex_enter(&spa->spa_scrub_lock); + spa->spa_scrub_inflight--; + cv_broadcast(&spa->spa_scrub_io_cv); + + if (ioerr && !(zio->io_flags & ZIO_FLAG_SPECULATIVE)) { + char blkbuf[BP_SPRINTF_LEN]; + + zcb->zcb_haderrors = 1; + zcb->zcb_errors[ioerr]++; + + if (dump_opt['b'] >= 2) + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); + else + blkbuf[0] = '\0'; + + (void) printf("zdb_blkptr_cb: " + "Got error %d reading " + "<%llu, %llu, %lld, %llx> %s -- skipping\n", + ioerr, + (u_longlong_t)zb->zb_objset, + (u_longlong_t)zb->zb_object, + (u_longlong_t)zb->zb_level, + (u_longlong_t)zb->zb_blkid, + blkbuf); + } + mutex_exit(&spa->spa_scrub_lock); +} + +/* ARGSUSED */ static int zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) { zdb_cb_t *zcb = arg; - char blkbuf[BP_SPRINTF_LEN]; dmu_object_type_t type; boolean_t is_metadata; - if (bp == NULL) + if (dump_opt['b'] >= 5 && bp->blk_birth > 0) { + char blkbuf[BP_SPRINTF_LEN]; + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); + (void) printf("objset %llu object %llu " + "level %lld offset 0x%llx %s\n", + (u_longlong_t)zb->zb_objset, + (u_longlong_t)zb->zb_object, + (longlong_t)zb->zb_level, + (u_longlong_t)blkid2offset(dnp, bp, zb), + blkbuf); + } + + if (BP_IS_HOLE(bp)) return (0); type = BP_GET_TYPE(bp); @@ -2174,53 +2239,26 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog is_metadata = (BP_GET_LEVEL(bp) != 0 || DMU_OT_IS_METADATA(type)); if (dump_opt['c'] > 1 || (dump_opt['c'] && is_metadata)) { - int ioerr; size_t size = BP_GET_PSIZE(bp); - void *data = malloc(size); + void *data = zio_data_buf_alloc(size); int flags = ZIO_FLAG_CANFAIL | ZIO_FLAG_SCRUB | ZIO_FLAG_RAW; /* If it's an intent log block, failure is expected. */ if (zb->zb_level == ZB_ZIL_LEVEL) flags |= ZIO_FLAG_SPECULATIVE; - ioerr = zio_wait(zio_read(NULL, spa, bp, data, size, - NULL, NULL, ZIO_PRIORITY_ASYNC_READ, flags, zb)); - - free(data); - if (ioerr && !(flags & ZIO_FLAG_SPECULATIVE)) { - zcb->zcb_haderrors = 1; - zcb->zcb_errors[ioerr]++; + mutex_enter(&spa->spa_scrub_lock); + while (spa->spa_scrub_inflight > max_inflight) + cv_wait(&spa->spa_scrub_io_cv, &spa->spa_scrub_lock); + spa->spa_scrub_inflight++; + mutex_exit(&spa->spa_scrub_lock); - if (dump_opt['b'] >= 2) - sprintf_blkptr(blkbuf, bp); - else - blkbuf[0] = '\0'; - - (void) printf("zdb_blkptr_cb: " - "Got error %d reading " - "<%llu, %llu, %lld, %llx> %s -- skipping\n", - ioerr, - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (u_longlong_t)zb->zb_level, - (u_longlong_t)zb->zb_blkid, - blkbuf); - } + zio_nowait(zio_read(NULL, spa, bp, data, size, + zdb_blkptr_done, zcb, ZIO_PRIORITY_ASYNC_READ, flags, zb)); } zcb->zcb_readfails = 0; - if (dump_opt['b'] >= 5) { - sprintf_blkptr(blkbuf, bp); - (void) printf("objset %llu object %llu " - "level %lld offset 0x%llx %s\n", - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (longlong_t)zb->zb_level, - (u_longlong_t)blkid2offset(dnp, bp, zb), - blkbuf); - } - if (dump_opt['b'] < 5 && isatty(STDERR_FILENO) && gethrtime() > zcb->zcb_lastprint + NANOSEC) { uint64_t now = gethrtime(); @@ -2377,7 +2415,7 @@ count_block_cb(void *arg, const blkptr_t if (dump_opt['b'] >= 5) { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("[%s] %s\n", "deferred free", blkbuf); } @@ -2433,6 +2471,18 @@ dump_block_stats(spa_t *spa) zcb.zcb_start = zcb.zcb_lastprint = gethrtime(); zcb.zcb_haderrors |= traverse_pool(spa, 0, flags, zdb_blkptr_cb, &zcb); + /* + * If we've traversed the data blocks then we need to wait for those + * I/Os to complete. We leverage "The Godfather" zio to wait on + * all async I/Os to complete. + */ + if (dump_opt['c']) { + (void) zio_wait(spa->spa_async_zio_root); + spa->spa_async_zio_root = zio_root(spa, NULL, NULL, + ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE | + ZIO_FLAG_GODFATHER); + } + if (zcb.zcb_haderrors) { (void) printf("\nError counts:\n\n"); (void) printf("\t%5s %s\n", "errno", "count"); @@ -2599,7 +2649,7 @@ zdb_ddt_add_cb(spa_t *spa, zilog_t *zilo avl_index_t where; zdb_ddt_entry_t *zdde, zdde_search; - if (bp == NULL) + if (BP_IS_HOLE(bp)) return (0); if (dump_opt['S'] > 1 && zb->zb_level == ZB_ROOT_LEVEL) { @@ -2766,7 +2816,7 @@ zdb_print_blkptr(blkptr_t *bp, int flags if (flags & ZDB_FLAG_BSWAP) byteswap_uint64_array((void *)bp, sizeof (blkptr_t)); - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("%s\n", blkbuf); } @@ -3202,7 +3252,7 @@ main(int argc, char **argv) dprintf_setup(&argc, argv); - while ((c = getopt(argc, argv, "bcdhilmsuCDRSAFLXevp:t:U:P")) != -1) { + while ((c = getopt(argc, argv, "bcdhilmM:suCDRSAFLXevp:t:U:P")) != -1) { switch (c) { case 'b': case 'c': @@ -3231,6 +3281,15 @@ main(int argc, char **argv) case 'v': verbose++; break; + case 'M': + max_inflight = strtoull(optarg, NULL, 0); + if (max_inflight == 0) { + (void) fprintf(stderr, "maximum number " + "of inflight I/Os must be greater " + "than 0\n"); + usage(); + } + break; case 'p': if (searchdirs == NULL) { searchdirs = umem_alloc(sizeof (char *), Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Thu Jan 9 17:27:00 2014 (r260487) @@ -24,6 +24,10 @@ */ /* + * Copyright (c) 2013 by Delphix. All rights reserved. + */ + +/* * Print intent log header and statistics. */ @@ -47,7 +51,7 @@ print_log_bp(const blkptr_t *bp, const c { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("%s%s\n", prefix, blkbuf); } @@ -132,6 +136,7 @@ zil_prt_rec_write(zilog_t *zilog, int tx if (lr->lr_common.lrc_reclen == sizeof (lr_write_t)) { (void) printf("%shas blkptr, %s\n", prefix, + !BP_IS_HOLE(bp) && bp->blk_birth >= spa_first_txg(zilog->zl_spa) ? "will claim" : "won't claim"); print_log_bp(bp, prefix); @@ -139,8 +144,6 @@ zil_prt_rec_write(zilog_t *zilog, int tx if (BP_IS_HOLE(bp)) { (void) printf("\t\t\tLSIZE 0x%llx\n", (u_longlong_t)BP_GET_LSIZE(bp)); - } - if (bp->blk_birth == 0) { bzero(buf, sizeof (buf)); (void) printf("%s\n", prefix); return; @@ -313,7 +316,8 @@ print_log_block(zilog_t *zilog, blkptr_t if (verbose >= 5) { (void) strcpy(blkbuf, ", "); - sprintf_blkptr(blkbuf + strlen(blkbuf), bp); + snprintf_blkptr(blkbuf + strlen(blkbuf), + sizeof (blkbuf) - strlen(blkbuf), bp); } else { blkbuf[0] = '\0'; } @@ -361,7 +365,7 @@ dump_intent_log(zilog_t *zilog) int verbose = MAX(dump_opt['d'], dump_opt['i']); int i; - if (zh->zh_log.blk_birth == 0 || verbose < 1) + if (BP_IS_HOLE(&zh->zh_log) || verbose < 1) return; (void) printf("\n ZIL header: claim_txg %llu, " Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Thu Jan 9 17:27:00 2014 (r260487) @@ -18,7 +18,7 @@ .\" information: Portions Copyright [yyyy] [name of copyright owner] .\" .\" Copyright (c) 2010, Sun Microsystems, Inc. All Rights Reserved. -.\" Copyright (c) 2012 by Delphix. All rights reserved. +.\" Copyright (c) 2013 by Delphix. All rights reserved. .\" Copyright (c) 2011, Pawel Jakub Dawidek .\" Copyright (c) 2012, Glen Barber .\" Copyright (c) 2012, Bryan Drewery @@ -26,10 +26,11 @@ .\" Copyright (c) 2013 Nexenta Systems, Inc. All Rights Reserved. .\" Copyright (c) 2013, Joyent, Inc. All rights reserved. .\" Copyright (c) 2013, Steven Hartland +.\" Copyright (c) 2014, Xin LI .\" .\" $FreeBSD$ .\" -.Dd December 24, 2013 +.Dd January 2, 2014 .Dt ZFS 8 .Os .Sh NAME @@ -57,11 +58,16 @@ .Cm destroy .Op Fl dnpRrv .Sm off -.Ar snapshot -.Op % Ns Ar snapname +.Ar filesystem Ns | Ns volume +.Ns @snap +.Op % Ns Ar snap +.Op , Ns Ar snap Op % Ns Ar snap .Op , Ns ... .Sm on .Nm +.Cm destroy +.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark +.Nm .Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... @@ -168,11 +174,19 @@ .Cm unshare .Fl a | Ar filesystem Ns | Ns Ar mountpoint .Nm +.Cm bookmark +.Ar snapshot +.Ar bookmark +.Nm .Cm send .Op Fl DnPpRv .Op Fl i Ar snapshot | Fl I Ar snapshot .Ar snapshot .Nm +.Cm send +.Op Fl i Ar snapshot Ns | Ns bookmark +.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot +.Nm .Cm receive Ns | Ns Cm recv .Op Fl vnFu .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot @@ -1654,6 +1668,13 @@ options, as they can destroy large porti behavior for mounted file systems in use. .It Xo .Nm +.Cm destroy +.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark +.Xc +.Pp +The given bookmark is destroyed. +.It Xo +.Nm .Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... @@ -1686,14 +1707,24 @@ Roll back the given dataset to a previou back, all data that has changed since the snapshot is discarded, and the dataset reverts to the state at the time of the snapshot. By default, the command refuses to roll back to a snapshot other than the most recent one. In -order to do so, all intermediate snapshots must be destroyed by specifying the +order to do so, all intermediate snapshots and bookmarks must be destroyed +by specifying the .Fl r option. +.Pp +The +.Fl rR +options do not recursively destroy the child snapshots of a +recursive snapshot. +Only direct snapshots of the specified filesystem +are destroyed by either of these options. +To completely roll back a +recursive snapshot, you must rollback the individual child snapshots. .Bl -tag -width indent .It Fl r -Recursively destroy any snapshots more recent than the one specified. +Destroy any snapshots and bookmarks more recent than the one specified. .It Fl R -Recursively destroy any more recent snapshots, as well as any clones of those +Destroy any more recent snapshots and bookmarks, as well as any clones of those snapshots. .It Fl f Used with the @@ -1868,7 +1899,7 @@ syntax. A comma-separated list of types to display, where .Ar type is one of -.Sy filesystem , snapshot , snap, volume , No or Sy all . +.Sy filesystem , snapshot , snap , volume , bookmark , No or Sy all . For example, specifying .Fl t Cm snapshot displays only snapshots. @@ -1965,7 +1996,7 @@ sections. The special value .Cm all can be used to display all properties that apply to the given dataset's type -(filesystem, volume, or snapshot). +(filesystem, volume, snapshot, or bookmark). .Bl -tag -width indent .It Fl r Recursively display properties for any children. @@ -2283,6 +2314,26 @@ file system shared on the system. .El .It Xo .Nm +.Cm bookmark +.Ar snapshot +.Ar bookmark +.Xc +.Pp +Creates a bookmark of the given snapshot. +Bookmarks mark the point in time +when the snapshot was created, and can be used as the incremental source for +a +.Qq Nm Cm send +command. +.Pp +This feature must be enabled to be used. +See +.Xr zpool-features 7 +for details on ZFS feature flags and the +.Sy bookmark +feature. +.It Xo +.Nm .Cm send .Op Fl DnPpRv .Op Fl i Ar snapshot | Fl I Ar snapshot @@ -2301,17 +2352,15 @@ a file or to a different system (for exa By default, a full stream is generated. .Bl -tag -width indent .It Fl i Ar snapshot -Generate an incremental stream from the -.Fl i Ar snapshot -to the last -.Ar snapshot . -The incremental source (the -.Fl i Ar snapshot ) -can be specified as the last component of the snapshot name (for example, the -part after the -.Sy @ ) , -and it is assumed to be from the same file system as the last -.Ar snapshot . +Generate an incremental stream from the first +.Ar snapshot Pq the incremental source +to the second +.Ar snapshot Pq the incremental target . +The incremental source can be specified as the last component of the +snapshot name +.Pq the Em @ No character and following +and +it is assumed to be from the same file system as the incremental target. .Pp If the destination is a clone, the source may be the origin snapshot, which must be fully specified (for example, @@ -2319,15 +2368,16 @@ must be fully specified (for example, not just .Cm @origin ) . .It Fl I Ar snapshot -Generate a stream package that sends all intermediary snapshots from the -.Fl I Ar snapshot -to the last +Generate a stream package that sends all intermediary snapshots from the first +.Ar snapshot +to the second .Ar snapshot . For example, .Ic -I @a fs@d is similar to .Ic -i @a fs@b; -i @b fs@c; -i @c fs@d . -The incremental source snapshot may be specified as with the +The incremental +source may be specified as with the .Fl i option. .It Fl R @@ -2380,6 +2430,35 @@ on future versions of .Tn ZFS . .It Xo .Nm +.Cm send +.Op Fl i Ar snapshot Ns | Ns Ar bookmark +.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot +.Xc +.Pp +Generate a send stream, which may be of a filesystem, and may be +incremental from a bookmark. +If the destination is a filesystem or volume, +the pool must be read-only, or the filesystem must not be mounted. +When the +stream generated from a filesystem or volume is received, the default snapshot +name will be +.Pq --head-- . +.Bl -tag -width indent +.It Fl i Ar snapshot Ns | Ns bookmark +Generate an incremental send stream. +The incremental source must be an earlier +snapshot in the destination's history. +It will commonly be an earlier +snapshot in the destination's filesystem, in which case it can be +specified as the last component of the name +.Pq the Em # No or Em @ No character and following . +.Pp +If the incremental target is a clone, the incremental source can +be the origin snapshot, or an earlier snapshot in the origin's filesystem, +or the origin's origin, etc. +.El +.It Xo +.Nm .Cm receive Ns | Ns Cm recv .Op Fl vnFu .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Thu Jan 9 17:27:00 2014 (r260487) @@ -24,6 +24,7 @@ * Copyright (c) 2012 Pawel Jakub Dawidek . * All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. */ #include @@ -72,7 +73,7 @@ uu_avl_pool_t *avl_pool; * Include snaps if they were requested or if this a zfs list where types * were not specified and the "listsnapshots" property is set on this pool. */ -static int +static boolean_t zfs_include_snapshots(zfs_handle_t *zhp, callback_data_t *cb) { zpool_handle_t *zph; @@ -92,8 +93,9 @@ static int zfs_callback(zfs_handle_t *zhp, void *data) { callback_data_t *cb = data; - int dontclose = 0; - int include_snaps = zfs_include_snapshots(zhp, cb); + boolean_t dontclose = B_FALSE; + boolean_t include_snaps = zfs_include_snapshots(zhp, cb); + boolean_t include_bmarks = (cb->cb_types & ZFS_TYPE_BOOKMARK); if ((zfs_get_type(zhp) & cb->cb_types) || ((zfs_get_type(zhp) == ZFS_TYPE_SNAPSHOT) && include_snaps)) { @@ -119,7 +121,7 @@ zfs_callback(zfs_handle_t *zhp, void *da } } uu_avl_insert(cb->cb_avl, node, idx); - dontclose = 1; + dontclose = B_TRUE; } else { free(node); } @@ -134,11 +136,14 @@ zfs_callback(zfs_handle_t *zhp, void *da cb->cb_depth++; if (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM) (void) zfs_iter_filesystems(zhp, zfs_callback, data); - if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps) { + if (((zfs_get_type(zhp) & (ZFS_TYPE_SNAPSHOT | + ZFS_TYPE_BOOKMARK)) == 0) && include_snaps) (void) zfs_iter_snapshots(zhp, (cb->cb_flags & ZFS_ITER_SIMPLE) != 0, zfs_callback, data); - } + if (((zfs_get_type(zhp) & (ZFS_TYPE_SNAPSHOT | + ZFS_TYPE_BOOKMARK)) == 0) && include_bmarks) + (void) zfs_iter_bookmarks(zhp, zfs_callback, data); cb->cb_depth--; } Modified: user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Thu Jan 9 15:55:55 2014 (r260486) +++ user/gjb/hacking/release-embedded/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Thu Jan 9 17:27:00 2014 (r260487) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. * Copyright 2012 Milan Jurik. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2011-2012 Pawel Jakub Dawidek . @@ -107,6 +107,7 @@ static int zfs_do_release(int argc, char static int zfs_do_diff(int argc, char **argv); static int zfs_do_jail(int argc, char **argv); static int zfs_do_unjail(int argc, char **argv); +static int zfs_do_bookmark(int argc, char **argv); /* * Enable a reasonable set of defaults for libumem debugging on DEBUG builds. @@ -155,6 +156,7 @@ typedef enum { HELP_HOLDS, HELP_RELEASE, HELP_DIFF, + HELP_BOOKMARK, } zfs_help_t; typedef struct zfs_command { @@ -181,6 +183,7 @@ static zfs_command_t command_table[] = { { "clone", zfs_do_clone, HELP_CLONE }, { "promote", zfs_do_promote, HELP_PROMOTE }, { "rename", zfs_do_rename, HELP_RENAME }, + { "bookmark", zfs_do_bookmark, HELP_BOOKMARK }, { NULL }, { "list", zfs_do_list, HELP_LIST }, { NULL }, @@ -231,11 +234,12 @@ get_usage(zfs_help_t idx) case HELP_DESTROY: return (gettext("\tdestroy [-fnpRrv] \n" "\tdestroy [-dnpRrv] " - "[%][,...]\n")); + "@[%][,...]\n" + "\tdestroy #\n")); case HELP_GET: return (gettext("\tget [-rHp] [-d max] " - "[-o \"all\" | field[,...]] [-t type[,...]] " - "[-s source[,...]]\n" + "[-o \"all\" | field[,...]]\n" + "\t [-t type[,...]] [-s source[,...]]\n" "\t <\"all\" | property[,...]> " "[filesystem|volume|snapshot] ...\n")); case HELP_INHERIT: @@ -264,15 +268,16 @@ get_usage(zfs_help_t idx) case HELP_RENAME: return (gettext("\trename [-f] " "\n" - "\trename [-f] -p " - "\n" + "\trename [-f] -p \n" "\trename -r \n" "\trename -u [-p] ")); case HELP_ROLLBACK: return (gettext("\trollback [-rRf] \n")); case HELP_SEND: - return (gettext("\tsend [-DnPpRv] " - "[-i snapshot | -I snapshot] \n")); + return (gettext("\tsend [-DnPpRv] [-[iI] snapshot] " + "\n" + "\tsend [-i snapshot|bookmark] " + "\n")); case HELP_SET: return (gettext("\tset " " ...\n")); @@ -280,7 +285,7 @@ get_usage(zfs_help_t idx) return (gettext("\tshare <-a | filesystem>\n")); case HELP_SNAPSHOT: return (gettext("\tsnapshot|snap [-r] [-o property=value] ... " - " ...\n")); + "@ ...\n")); case HELP_UNMOUNT: return (gettext("\tunmount|umount [-f] " "<-a | filesystem|mountpoint>\n")); @@ -309,11 +314,13 @@ get_usage(zfs_help_t idx) "\n")); case HELP_USERSPACE: return (gettext("\tuserspace [-Hinp] [-o field[,...]] " - "[-s field]...\n\t [-S field]... [-t type[,...]] " + "[-s field] ...\n" + "\t [-S field] ... [-t type[,...]] " "\n")); case HELP_GROUPSPACE: return (gettext("\tgroupspace [-Hinp] [-o field[,...]] " - "[-s field]...\n\t [-S field]... [-t type[,...]] " + "[-s field] ...\n" + "\t [-S field] ... [-t type[,...]] " "\n")); case HELP_HOLD: return (gettext("\thold [-r] ...\n")); @@ -324,6 +331,8 @@ get_usage(zfs_help_t idx) case HELP_DIFF: return (gettext("\tdiff [-FHt] " "[snapshot|filesystem]\n")); + case HELP_BOOKMARK: + return (gettext("\tbookmark \n")); } abort(); @@ -926,6 +935,7 @@ typedef struct destroy_cbdata { char *cb_prevsnap; int64_t cb_snapused; char *cb_snapspec; + char *cb_bookmark; } destroy_cbdata_t; /* @@ -1195,7 +1205,7 @@ zfs_do_destroy(int argc, char **argv) int err = 0; int c; zfs_handle_t *zhp = NULL; - char *at; + char *at, *pound; zfs_type_t type = ZFS_TYPE_DATASET; /* check options */ @@ -1247,6 +1257,7 @@ zfs_do_destroy(int argc, char **argv) } at = strchr(argv[0], '@'); + pound = strchr(argv[0], '#'); if (at != NULL) { /* Build the list of snaps to destroy in cb_nvl. */ @@ -1308,6 +1319,46 @@ zfs_do_destroy(int argc, char **argv) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Fri Jan 10 01:44:37 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5556F177; Fri, 10 Jan 2014 01:44:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3EA93158B; Fri, 10 Jan 2014 01:44:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0A1ibbO043652; Fri, 10 Jan 2014 01:44:37 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0A1iZCW043639; Fri, 10 Jan 2014 01:44:35 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201401100144.s0A1iZCW043639@svn.freebsd.org> From: Glen Barber Date: Fri, 10 Jan 2014 01:44:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260500 - in user/gjb/hacking/release-embedded: contrib/atf/atf-c++/detail sbin/geom/class/part sys/arm/arm sys/arm/include sys/conf sys/net sys/netinet6 X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2014 01:44:37 -0000 Author: gjb Date: Fri Jan 10 01:44:34 2014 New Revision: 260500 URL: http://svnweb.freebsd.org/changeset/base/260500 Log: MFH: tracking commit (head@r260487) - Unbreak all the things. Sponsored by: The FreeBSD Foundation Modified: user/gjb/hacking/release-embedded/contrib/atf/atf-c++/detail/test_helpers.cpp user/gjb/hacking/release-embedded/sbin/geom/class/part/geom_part.c (contents, props changed) user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c user/gjb/hacking/release-embedded/sys/arm/include/devmap.h user/gjb/hacking/release-embedded/sys/conf/Makefile.arm user/gjb/hacking/release-embedded/sys/net/route.c user/gjb/hacking/release-embedded/sys/net/route.h user/gjb/hacking/release-embedded/sys/net/rtsock.c user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h Directory Properties: user/gjb/hacking/release-embedded/ (props changed) Modified: user/gjb/hacking/release-embedded/contrib/atf/atf-c++/detail/test_helpers.cpp ============================================================================== --- user/gjb/hacking/release-embedded/contrib/atf/atf-c++/detail/test_helpers.cpp Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/contrib/atf/atf-c++/detail/test_helpers.cpp Fri Jan 10 01:44:34 2014 (r260500) @@ -67,14 +67,14 @@ build_check_cxx_o(const atf::tests::tc& void header_check(const char *hdrname) { - std::ofstream srcfile("test.c"); + std::ofstream srcfile("test.cpp"); ATF_REQUIRE(srcfile); srcfile << "#include <" << hdrname << ">\n"; srcfile.close(); const std::string failmsg = std::string("Header check failed; ") + hdrname + " is not self-contained"; - build_check_cxx_o_aux(atf::fs::path("test.c"), failmsg.c_str(), true); + build_check_cxx_o_aux(atf::fs::path("test.cpp"), failmsg.c_str(), true); } atf::fs::path Modified: user/gjb/hacking/release-embedded/sbin/geom/class/part/geom_part.c ============================================================================== --- user/gjb/hacking/release-embedded/sbin/geom/class/part/geom_part.c Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sbin/geom/class/part/geom_part.c Fri Jan 10 01:44:34 2014 (r260500) @@ -454,8 +454,19 @@ gpart_autofill(struct gctl_req *req) if (s == NULL) abort(); gp = find_geom(cp, s); - if (gp == NULL) - errx(EXIT_FAILURE, "No such geom: %s.", s); + if (gp == NULL) { + if (g_device_path(s) == NULL) { + errx(EXIT_FAILURE, "No such geom %s.", s); + } else { + /* + * We don't free memory allocated by g_device_path() as + * we are about to exit. + */ + errx(EXIT_FAILURE, + "No partitioning scheme found on geom %s. Create one first using 'gpart create'.", + s); + } + } pp = LIST_FIRST(&gp->lg_consumer)->lg_provider; if (pp == NULL) errx(EXIT_FAILURE, "Provider for geom %s not found.", s); Modified: user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c ============================================================================== --- user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/arm/arm/devmap.c Fri Jan 10 01:44:34 2014 (r260500) @@ -31,6 +31,8 @@ __FBSDID("$FreeBSD$"); * Routines for mapping device memory. */ +#include "opt_ddb.h" + #include #include #include @@ -54,6 +56,36 @@ static u_int akva_devmap_idx; static vm_offset_t akva_devmap_vaddr = ARM_VECTORS_HIGH; /* + * Print the contents of the static mapping table using the provided printf-like + * output function (which will be either printf or db_printf). + */ +static void +devmap_dump_table(int (*prfunc)(const char *, ...)) +{ + const struct arm_devmap_entry *pd; + + if (devmap_table == NULL || devmap_table[0].pd_size == 0) { + prfunc("No static device mappings.\n"); + return; + } + + prfunc("Static device mappings:\n"); + for (pd = devmap_table; pd->pd_size != 0; ++pd) { + prfunc(" 0x%08x - 0x%08x mapped at VA 0x%08x\n", + pd->pd_pa, pd->pd_pa + pd->pd_size - 1, pd->pd_va); + } +} + +/* + * Print the contents of the static mapping table. Used for bootverbose. + */ +void +arm_devmap_print_table() +{ + devmap_dump_table(printf); +} + +/* * Return the "last" kva address used by the registered devmap table. It's * actually the lowest address used by the static mappings, i.e., the address of * the first unusable byte of KVA. @@ -266,3 +298,13 @@ pmap_unmapdev(vm_offset_t va, vm_size_t kva_free(va, origsize); } +#ifdef DDB +#include + +DB_SHOW_COMMAND(devmap, db_show_devmap) +{ + devmap_dump_table(db_printf); +} + +#endif /* DDB */ + Modified: user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c ============================================================================== --- user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/arm/arm/machdep.c Fri Jan 10 01:44:34 2014 (r260500) @@ -379,10 +379,10 @@ cpu_startup(void *dummy) vm_paddr_t size; size = phys_avail[indx + 1] - phys_avail[indx]; - printf("%#08jx - %#08jx, %ju bytes (%ju pages)\n", + printf(" 0x%08jx - 0x%08jx, %ju KBytes (%ju pages)\n", (uintmax_t)phys_avail[indx], (uintmax_t)phys_avail[indx + 1] - 1, - (uintmax_t)size, (uintmax_t)size / PAGE_SIZE); + (uintmax_t)size / 1024, (uintmax_t)size / PAGE_SIZE); } } @@ -392,6 +392,9 @@ cpu_startup(void *dummy) (uintmax_t)ptoa(cnt.v_free_count), (uintmax_t)ptoa(cnt.v_free_count) / 1048576); + if (bootverbose) + arm_devmap_print_table(); + bufinit(); vm_pager_bufferinit(); pcb->un_32.pcb32_und_sp = (u_int)thread0.td_kstack + Modified: user/gjb/hacking/release-embedded/sys/arm/include/devmap.h ============================================================================== --- user/gjb/hacking/release-embedded/sys/arm/include/devmap.h Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/arm/include/devmap.h Fri Jan 10 01:44:34 2014 (r260500) @@ -87,4 +87,7 @@ void arm_devmap_bootstrap(vm_offset_t _l void * arm_devmap_ptov(vm_paddr_t _pa, vm_size_t _sz); vm_paddr_t arm_devmap_vtop(void * _va, vm_size_t _sz); +/* Print the static mapping table; used for bootverbose output. */ +void arm_devmap_print_table(void); + #endif Modified: user/gjb/hacking/release-embedded/sys/conf/Makefile.arm ============================================================================== --- user/gjb/hacking/release-embedded/sys/conf/Makefile.arm Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/conf/Makefile.arm Fri Jan 10 01:44:34 2014 (r260500) @@ -39,16 +39,20 @@ SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscri STRIP_FLAGS = -S .endif -CFLAGS.gcc += -mno-thumb-interwork +.if ${COMPILER_TYPE} != "clang" +CFLAGS += -mno-thumb-interwork +.endif .if empty(DDB_ENABLED) -.if defined(WITHOUT_ARM_EABI) -CFLAGS.gcc += -mno-apcs-frame +.if defined(WITHOUT_ARM_EABI) && ${COMPILER_TYPE} != "clang" +CFLAGS += -mno-apcs-frame .endif .elif !defined(WITHOUT_ARM_EABI) CFLAGS += -funwind-tables +.if ${COMPILER_TYPE} == "clang" # clang requires us to tell it to emit assembly with unwind information -CFLAGS.clang += -mllvm -arm-enable-ehabi +CFLAGS += -mllvm -arm-enable-ehabi +.endif .endif SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader ${LDFLAGS} \ Modified: user/gjb/hacking/release-embedded/sys/net/route.c ============================================================================== --- user/gjb/hacking/release-embedded/sys/net/route.c Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/net/route.c Fri Jan 10 01:44:34 2014 (r260500) @@ -37,6 +37,7 @@ #include "opt_inet.h" #include "opt_inet6.h" #include "opt_route.h" +#include "opt_sctp.h" #include "opt_mrouting.h" #include "opt_mpath.h" @@ -52,6 +53,7 @@ #include #include #include +#include #include #include @@ -86,6 +88,13 @@ #define RT_NUMFIBS 1 #endif +#if defined(INET) || defined(INET6) +#ifdef SCTP +extern void sctp_addr_change(struct ifaddr *ifa, int cmd); +#endif /* SCTP */ +#endif + + /* This is read-only.. */ u_int rt_numfibs = RT_NUMFIBS; SYSCTL_UINT(_net, OID_AUTO, fibs, CTLFLAG_RD, &rt_numfibs, 0, ""); @@ -118,7 +127,8 @@ VNET_DEFINE(int, rttrash); /* routes no /* compare two sockaddr structures */ -#define sa_equal(a1, a2) (bcmp((a1), (a2), (a1)->sa_len) == 0) +#define sa_equal(a1, a2) (((a1)->sa_len == (a2)->sa_len) && \ + (bcmp((a1), (a2), (a1)->sa_len) == 0)) /* * Convert a 'struct radix_node *' to a 'struct rtentry *'. @@ -1731,3 +1741,99 @@ rtinit(struct ifaddr *ifa, int cmd, int } return (rtinit1(ifa, cmd, flags, fib)); } + +/* + * Announce interface address arrival/withdraw + * Returns 0 on success. + */ +int +rt_addrmsg(int cmd, struct ifaddr *ifa, int fibnum) +{ + + KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, + ("unexpected cmd %u", cmd)); + + if (fibnum != RT_ALL_FIBS) { + KASSERT(fibnum >= 0 && fibnum < rt_numfibs, ("%s: " + "fibnum out of range 0 <= %d < %d", __func__, + fibnum, rt_numfibs)); + } + + return (rtsock_addrmsg(cmd, ifa, fibnum)); +} + + +/* + * Announce route addition/removal + * Users of this function MUST validate input data BEFORE calling. + * However we have to be able to handle invalid data: + * if some userland app sends us "invalid" route message (invalid mask, + * no dst, wrokg address families, etc...) we need to pass it back + * to app (and any other rtsock consumers) with rtm_errno field set to + * non-zero value. + * Returns 0 on success. + */ +int +rt_routemsg(int cmd, struct ifnet *ifp, int error, struct rtentry *rt, + int fibnum) +{ + + KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, + ("unexpected cmd %u", cmd)); + + if (fibnum != RT_ALL_FIBS) { + KASSERT(fibnum >= 0 && fibnum < rt_numfibs, ("%s: " + "fibnum out of range 0 <= %d < %d", __func__, + fibnum, rt_numfibs)); + } + + KASSERT(rt_key(rt) != NULL, (":%s: rt_key must be supplied", __func__)); + + return (rtsock_routemsg(cmd, ifp, error, rt, fibnum)); +} + +void +rt_newaddrmsg(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt) +{ + + rt_newaddrmsg_fib(cmd, ifa, error, rt, RT_ALL_FIBS); +} + +/* + * This is called to generate messages from the routing socket + * indicating a network interface has had addresses associated with it. + */ +void +rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt, + int fibnum) +{ + + KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, + ("unexpected cmd %u", cmd)); + if (fibnum != RT_ALL_FIBS) { + KASSERT(fibnum >= 0 && fibnum < rt_numfibs, ("%s: " + "fibnum out of range 0 <= %d < %d", __func__, + fibnum, rt_numfibs)); + } + +#if defined(INET) || defined(INET6) +#ifdef SCTP + /* + * notify the SCTP stack + * this will only get called when an address is added/deleted + * XXX pass the ifaddr struct instead if ifa->ifa_addr... + */ + sctp_addr_change(ifa, cmd); +#endif /* SCTP */ +#endif + if (cmd == RTM_ADD) { + rt_addrmsg(cmd, ifa, fibnum); + if (rt != NULL) + rt_routemsg(cmd, ifa->ifa_ifp, error, rt, fibnum); + } else { + if (rt != NULL) + rt_routemsg(cmd, ifa->ifa_ifp, error, rt, fibnum); + rt_addrmsg(cmd, ifa, fibnum); + } +} + Modified: user/gjb/hacking/release-embedded/sys/net/route.h ============================================================================== --- user/gjb/hacking/release-embedded/sys/net/route.h Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/net/route.h Fri Jan 10 01:44:34 2014 (r260500) @@ -369,10 +369,15 @@ void rt_missmsg(int, struct rt_addrinfo void rt_missmsg_fib(int, struct rt_addrinfo *, int, int, int); void rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *); void rt_newaddrmsg_fib(int, struct ifaddr *, int, struct rtentry *, int); +int rt_addrmsg(int, struct ifaddr *, int); +int rt_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); void rt_newmaddrmsg(int, struct ifmultiaddr *); int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); +int rtsock_addrmsg(int, struct ifaddr *, int); +int rtsock_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); + /* * Note the following locking behavior: * Modified: user/gjb/hacking/release-embedded/sys/net/rtsock.c ============================================================================== --- user/gjb/hacking/release-embedded/sys/net/rtsock.c Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/net/rtsock.c Fri Jan 10 01:44:34 2014 (r260500) @@ -30,7 +30,6 @@ * $FreeBSD$ */ #include "opt_compat.h" -#include "opt_sctp.h" #include "opt_mpath.h" #include "opt_inet.h" #include "opt_inet6.h" @@ -70,12 +69,6 @@ #include #endif -#if defined(INET) || defined(INET6) -#ifdef SCTP -extern void sctp_addr_change(struct ifaddr *ifa, int cmd); -#endif /* SCTP */ -#endif - #ifdef COMPAT_FREEBSD32 #include #include @@ -1334,91 +1327,95 @@ rt_ifmsg(struct ifnet *ifp) } /* - * This is called to generate messages from the routing socket - * indicating a network interface has had addresses associated with it. - * if we ever reverse the logic and replace messages TO the routing - * socket indicate a request to configure interfaces, then it will - * be unnecessary as the routing socket will automatically generate - * copies of it. + * Announce interface address arrival/withdraw. + * Please do not call directly, use rt_addrmsg(). + * Assume input data to be valid. + * Returns 0 on success. */ -void -rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt, - int fibnum) +int +rtsock_addrmsg(int cmd, struct ifaddr *ifa, int fibnum) { struct rt_addrinfo info; - struct sockaddr *sa = NULL; - int pass; - struct mbuf *m = NULL; + struct sockaddr *sa; + int ncmd; + struct mbuf *m; + struct ifa_msghdr *ifam; struct ifnet *ifp = ifa->ifa_ifp; - KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, - ("unexpected cmd %u", cmd)); -#if defined(INET) || defined(INET6) -#ifdef SCTP - /* - * notify the SCTP stack - * this will only get called when an address is added/deleted - * XXX pass the ifaddr struct instead if ifa->ifa_addr... - */ - sctp_addr_change(ifa, cmd); -#endif /* SCTP */ -#endif if (route_cb.any_count == 0) - return; - for (pass = 1; pass < 3; pass++) { - bzero((caddr_t)&info, sizeof(info)); - if ((cmd == RTM_ADD && pass == 1) || - (cmd == RTM_DELETE && pass == 2)) { - struct ifa_msghdr *ifam; - int ncmd = cmd == RTM_ADD ? RTM_NEWADDR : RTM_DELADDR; + return (0); - info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr; - info.rti_info[RTAX_IFP] = ifp->if_addr->ifa_addr; - info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask; - info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr; - if ((m = rt_msg1(ncmd, &info)) == NULL) - continue; - ifam = mtod(m, struct ifa_msghdr *); - ifam->ifam_index = ifp->if_index; - ifam->ifam_metric = ifa->ifa_metric; - ifam->ifam_flags = ifa->ifa_flags; - ifam->ifam_addrs = info.rti_addrs; - } - if ((cmd == RTM_ADD && pass == 2) || - (cmd == RTM_DELETE && pass == 1)) { - struct rt_msghdr *rtm; + ncmd = cmd == RTM_ADD ? RTM_NEWADDR : RTM_DELADDR; - if (rt == NULL) - continue; - info.rti_info[RTAX_NETMASK] = rt_mask(rt); - info.rti_info[RTAX_DST] = sa = rt_key(rt); - info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; - if ((m = rt_msg1(cmd, &info)) == NULL) - continue; - rtm = mtod(m, struct rt_msghdr *); - rtm->rtm_index = ifp->if_index; - rtm->rtm_flags |= rt->rt_flags; - rtm->rtm_errno = error; - rtm->rtm_addrs = info.rti_addrs; - } - if (fibnum != RT_ALL_FIBS) { - KASSERT(fibnum >= 0 && fibnum < rt_numfibs, ("%s: " - "fibnum out of range 0 <= %d < %d", __func__, - fibnum, rt_numfibs)); - M_SETFIB(m, fibnum); - m->m_flags |= RTS_FILTER_FIB; - } - rt_dispatch(m, sa ? sa->sa_family : AF_UNSPEC); + bzero((caddr_t)&info, sizeof(info)); + info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr; + info.rti_info[RTAX_IFP] = ifp->if_addr->ifa_addr; + info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask; + info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr; + if ((m = rt_msg1(ncmd, &info)) == NULL) + return (ENOBUFS); + ifam = mtod(m, struct ifa_msghdr *); + ifam->ifam_index = ifp->if_index; + ifam->ifam_metric = ifa->ifa_metric; + ifam->ifam_flags = ifa->ifa_flags; + ifam->ifam_addrs = info.rti_addrs; + + if (fibnum != RT_ALL_FIBS) { + M_SETFIB(m, fibnum); + m->m_flags |= RTS_FILTER_FIB; } + + rt_dispatch(m, sa ? sa->sa_family : AF_UNSPEC); + + return (0); } -void -rt_newaddrmsg(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt) +/* + * Announce route addition/removal. + * Please do not call directly, use rt_routemsg(). + * Note that @rt data MAY be inconsistent/invalid: + * if some userland app sends us "invalid" route message (invalid mask, + * no dst, wrong address families, etc...) we need to pass it back + * to app (and any other rtsock consumers) with rtm_errno field set to + * non-zero value. + * + * Returns 0 on success. + */ +int +rtsock_routemsg(int cmd, struct ifnet *ifp, int error, struct rtentry *rt, + int fibnum) { + struct rt_addrinfo info; + struct sockaddr *sa; + struct mbuf *m; + struct rt_msghdr *rtm; - rt_newaddrmsg_fib(cmd, ifa, error, rt, RT_ALL_FIBS); + if (route_cb.any_count == 0) + return (0); + + bzero((caddr_t)&info, sizeof(info)); + info.rti_info[RTAX_NETMASK] = rt_mask(rt); + info.rti_info[RTAX_DST] = sa = rt_key(rt); + info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; + if ((m = rt_msg1(cmd, &info)) == NULL) + return (ENOBUFS); + rtm = mtod(m, struct rt_msghdr *); + rtm->rtm_index = ifp->if_index; + rtm->rtm_flags |= rt->rt_flags; + rtm->rtm_errno = error; + rtm->rtm_addrs = info.rti_addrs; + + if (fibnum != RT_ALL_FIBS) { + M_SETFIB(m, fibnum); + m->m_flags |= RTS_FILTER_FIB; + } + + rt_dispatch(m, sa ? sa->sa_family : AF_UNSPEC); + + return (0); } + /* * This is the analogue to the rt_newaddrmsg which performs the same * function but for multicast group memberhips. This is easier since Modified: user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h ============================================================================== --- user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h Thu Jan 9 23:52:55 2014 (r260499) +++ user/gjb/hacking/release-embedded/sys/netinet6/ip6_mroute.h Fri Jan 10 01:44:34 2014 (r260500) @@ -194,7 +194,7 @@ struct sioc_mif_req6 { u_quad_t obytes; /* Output byte count on mif */ }; -#ifdef _KERNEL +#if defined(_KERNEL) || defined(KERNEL) /* * The kernel's multicast-interface structure. */ From owner-svn-src-user@FreeBSD.ORG Fri Jan 10 13:08:27 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 759E028F; Fri, 10 Jan 2014 13:08:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5D2961A07; Fri, 10 Jan 2014 13:08:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0AD8Rcj005310; Fri, 10 Jan 2014 13:08:27 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0AD8Nok005287; Fri, 10 Jan 2014 13:08:23 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201401101308.s0AD8Nok005287@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Fri, 10 Jan 2014 13:08:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260512 - in user/ae/inet6: . bin/ps bin/sh bin/sh/tests bin/sh/tests/parameters bin/test/tests cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolari... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2014 13:08:27 -0000 Author: ae Date: Fri Jan 10 13:08:21 2014 New Revision: 260512 URL: http://svnweb.freebsd.org/changeset/base/260512 Log: Merge from head/. Added: user/ae/inet6/bin/sh/tests/Kyuafile - copied unchanged from r260511, head/bin/sh/tests/Kyuafile user/ae/inet6/bin/sh/tests/parameters/optind2.0 - copied unchanged from r260511, head/bin/sh/tests/parameters/optind2.0 user/ae/inet6/bin/test/tests/Kyuafile - copied unchanged from r260511, head/bin/test/tests/Kyuafile user/ae/inet6/contrib/gcc/ChangeLog.apple - copied unchanged from r260511, head/contrib/gcc/ChangeLog.apple user/ae/inet6/contrib/gcc/cp/ChangeLog.apple - copied unchanged from r260511, head/contrib/gcc/cp/ChangeLog.apple user/ae/inet6/lib/libc/sys/aio_fsync.2 - copied unchanged from r260511, head/lib/libc/sys/aio_fsync.2 user/ae/inet6/lib/msun/ld128/k_expl.h - copied unchanged from r260511, head/lib/msun/ld128/k_expl.h user/ae/inet6/lib/msun/ld80/k_expl.h - copied unchanged from r260511, head/lib/msun/ld80/k_expl.h user/ae/inet6/lib/msun/src/e_coshl.c - copied unchanged from r260511, head/lib/msun/src/e_coshl.c user/ae/inet6/lib/msun/src/e_sinhl.c - copied unchanged from r260511, head/lib/msun/src/e_sinhl.c user/ae/inet6/lib/msun/src/s_tanhl.c - copied unchanged from r260511, head/lib/msun/src/s_tanhl.c user/ae/inet6/sbin/fsck_ffs/globs.c - copied unchanged from r260511, head/sbin/fsck_ffs/globs.c user/ae/inet6/sys/amd64/vmm/io/vlapic_priv.h - copied unchanged from r260511, head/sys/amd64/vmm/io/vlapic_priv.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c - copied unchanged from r260511, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h - copied unchanged from r260511, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h user/ae/inet6/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu - copied unchanged from r260511, head/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu user/ae/inet6/sys/dev/aic7xxx/aic79xx_reg.h - copied unchanged from r260511, head/sys/dev/aic7xxx/aic79xx_reg.h user/ae/inet6/sys/dev/aic7xxx/aic79xx_reg_print.c - copied unchanged from r260511, head/sys/dev/aic7xxx/aic79xx_reg_print.c user/ae/inet6/sys/dev/aic7xxx/aic79xx_seq.h - copied unchanged from r260511, head/sys/dev/aic7xxx/aic79xx_seq.h user/ae/inet6/sys/dev/aic7xxx/aic7xxx_reg.h - copied unchanged from r260511, head/sys/dev/aic7xxx/aic7xxx_reg.h user/ae/inet6/sys/dev/aic7xxx/aic7xxx_reg_print.c - copied unchanged from r260511, head/sys/dev/aic7xxx/aic7xxx_reg_print.c user/ae/inet6/sys/dev/aic7xxx/aic7xxx_seq.h - copied unchanged from r260511, head/sys/dev/aic7xxx/aic7xxx_seq.h user/ae/inet6/sys/modules/iwnfw/iwn135/ - copied from r260511, head/sys/modules/iwnfw/iwn135/ user/ae/inet6/sys/sys/sf_base.h - copied unchanged from r260511, head/sys/sys/sf_base.h user/ae/inet6/usr.sbin/bhyve/pm.c - copied unchanged from r260511, head/usr.sbin/bhyve/pm.c Deleted: user/ae/inet6/sys/arm/tegra/bus_space.c user/ae/inet6/sys/dev/fdt/fdt_pci.c user/ae/inet6/sys/powerpc/include/fdt.h Modified: user/ae/inet6/COPYRIGHT user/ae/inet6/Makefile.inc1 user/ae/inet6/UPDATING user/ae/inet6/bin/ps/ps.1 user/ae/inet6/bin/sh/input.c user/ae/inet6/bin/sh/sh.1 user/ae/inet6/bin/sh/tests/Makefile user/ae/inet6/bin/sh/tests/parameters/Makefile user/ae/inet6/bin/sh/var.c user/ae/inet6/bin/sh/var.h user/ae/inet6/bin/test/tests/Makefile user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.8 user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zhack/zhack.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 user/ae/inet6/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/ae/inet6/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/ae/inet6/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1 user/ae/inet6/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c user/ae/inet6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h user/ae/inet6/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c user/ae/inet6/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h user/ae/inet6/cddl/contrib/opensolaris/lib/pyzfs/common/allow.py user/ae/inet6/contrib/atf/atf-c++/detail/test_helpers.cpp user/ae/inet6/contrib/binutils/gas/config/tc-ia64.c user/ae/inet6/contrib/binutils/opcodes/ia64-asmtab.c user/ae/inet6/contrib/byacc/CHANGES user/ae/inet6/contrib/byacc/VERSION user/ae/inet6/contrib/byacc/aclocal.m4 user/ae/inet6/contrib/byacc/config.guess user/ae/inet6/contrib/byacc/config.sub user/ae/inet6/contrib/byacc/configure user/ae/inet6/contrib/byacc/configure.in user/ae/inet6/contrib/byacc/defs.h user/ae/inet6/contrib/byacc/main.c user/ae/inet6/contrib/byacc/makefile.in user/ae/inet6/contrib/byacc/output.c user/ae/inet6/contrib/byacc/package/byacc.spec user/ae/inet6/contrib/byacc/package/debian/changelog user/ae/inet6/contrib/byacc/reader.c user/ae/inet6/contrib/byacc/skeleton.c user/ae/inet6/contrib/byacc/test/calc.tab.c user/ae/inet6/contrib/byacc/test/calc1.tab.c user/ae/inet6/contrib/byacc/test/calc2.tab.c user/ae/inet6/contrib/byacc/test/calc3.tab.c user/ae/inet6/contrib/byacc/test/code_calc.code.c user/ae/inet6/contrib/byacc/test/code_calc.tab.c user/ae/inet6/contrib/byacc/test/code_error.code.c user/ae/inet6/contrib/byacc/test/code_error.tab.c user/ae/inet6/contrib/byacc/test/error.tab.c user/ae/inet6/contrib/byacc/test/ftp.tab.c user/ae/inet6/contrib/byacc/test/grammar.tab.c user/ae/inet6/contrib/byacc/test/pure_calc.tab.c user/ae/inet6/contrib/byacc/test/pure_error.tab.c user/ae/inet6/contrib/byacc/test/quote_calc-s.tab.c user/ae/inet6/contrib/byacc/test/quote_calc.tab.c user/ae/inet6/contrib/byacc/test/quote_calc2-s.tab.c user/ae/inet6/contrib/byacc/test/quote_calc2.tab.c user/ae/inet6/contrib/byacc/test/quote_calc3-s.tab.c user/ae/inet6/contrib/byacc/test/quote_calc3.tab.c user/ae/inet6/contrib/byacc/test/quote_calc4-s.tab.c user/ae/inet6/contrib/byacc/test/quote_calc4.tab.c user/ae/inet6/contrib/byacc/yacc.1 user/ae/inet6/contrib/diff/man/diff3.1 user/ae/inet6/contrib/gcc/ChangeLog.gcc43 user/ae/inet6/contrib/gcc/attribs.c user/ae/inet6/contrib/gcc/c-common.c user/ae/inet6/contrib/gcc/c-common.h user/ae/inet6/contrib/gcc/c-convert.c user/ae/inet6/contrib/gcc/c-cppbuiltin.c user/ae/inet6/contrib/gcc/c-decl.c user/ae/inet6/contrib/gcc/c-objc-common.h user/ae/inet6/contrib/gcc/c-opts.c user/ae/inet6/contrib/gcc/c-parser.c user/ae/inet6/contrib/gcc/c-pretty-print.c user/ae/inet6/contrib/gcc/c-pretty-print.h user/ae/inet6/contrib/gcc/c-tree.h user/ae/inet6/contrib/gcc/c-typeck.c user/ae/inet6/contrib/gcc/c.opt user/ae/inet6/contrib/gcc/calls.c user/ae/inet6/contrib/gcc/cgraph.h user/ae/inet6/contrib/gcc/cgraphunit.c user/ae/inet6/contrib/gcc/combine.c user/ae/inet6/contrib/gcc/config/arm/arm.c user/ae/inet6/contrib/gcc/config/arm/arm.md user/ae/inet6/contrib/gcc/config/darwin.c user/ae/inet6/contrib/gcc/config/darwin.h user/ae/inet6/contrib/gcc/convert.c user/ae/inet6/contrib/gcc/convert.h user/ae/inet6/contrib/gcc/cp/ChangeLog.gcc43 user/ae/inet6/contrib/gcc/cp/call.c user/ae/inet6/contrib/gcc/cp/class.c user/ae/inet6/contrib/gcc/cp/cp-gimplify.c user/ae/inet6/contrib/gcc/cp/cp-objcp-common.c user/ae/inet6/contrib/gcc/cp/cp-objcp-common.h user/ae/inet6/contrib/gcc/cp/cp-tree.def user/ae/inet6/contrib/gcc/cp/cp-tree.h user/ae/inet6/contrib/gcc/cp/decl.c user/ae/inet6/contrib/gcc/cp/decl.h user/ae/inet6/contrib/gcc/cp/decl2.c user/ae/inet6/contrib/gcc/cp/dump.c user/ae/inet6/contrib/gcc/cp/error.c user/ae/inet6/contrib/gcc/cp/init.c user/ae/inet6/contrib/gcc/cp/mangle.c user/ae/inet6/contrib/gcc/cp/name-lookup.c user/ae/inet6/contrib/gcc/cp/name-lookup.h user/ae/inet6/contrib/gcc/cp/parser.c user/ae/inet6/contrib/gcc/cp/pt.c user/ae/inet6/contrib/gcc/cp/semantics.c user/ae/inet6/contrib/gcc/cp/tree.c user/ae/inet6/contrib/gcc/cp/typeck.c user/ae/inet6/contrib/gcc/dbxout.c user/ae/inet6/contrib/gcc/doc/extend.texi user/ae/inet6/contrib/gcc/doc/invoke.texi user/ae/inet6/contrib/gcc/dwarf2.h user/ae/inet6/contrib/gcc/dwarf2out.c user/ae/inet6/contrib/gcc/emit-rtl.c user/ae/inet6/contrib/gcc/expmed.c user/ae/inet6/contrib/gcc/expr.c user/ae/inet6/contrib/gcc/final.c user/ae/inet6/contrib/gcc/fold-const.c user/ae/inet6/contrib/gcc/function.c user/ae/inet6/contrib/gcc/function.h user/ae/inet6/contrib/gcc/ggc-common.c user/ae/inet6/contrib/gcc/ggc.h user/ae/inet6/contrib/gcc/langhooks-def.h user/ae/inet6/contrib/gcc/langhooks.c user/ae/inet6/contrib/gcc/langhooks.h user/ae/inet6/contrib/gcc/print-rtl.c user/ae/inet6/contrib/gcc/print-tree.c user/ae/inet6/contrib/gcc/reload1.c user/ae/inet6/contrib/gcc/rtl.def user/ae/inet6/contrib/gcc/rtl.h user/ae/inet6/contrib/gcc/stmt.c user/ae/inet6/contrib/gcc/stor-layout.c user/ae/inet6/contrib/gcc/stub-objc.c user/ae/inet6/contrib/gcc/targhooks.c user/ae/inet6/contrib/gcc/toplev.c user/ae/inet6/contrib/gcc/toplev.h user/ae/inet6/contrib/gcc/tree-cfg.c user/ae/inet6/contrib/gcc/tree-gimple.h user/ae/inet6/contrib/gcc/tree-nested.c user/ae/inet6/contrib/gcc/tree.c user/ae/inet6/contrib/gcc/tree.def user/ae/inet6/contrib/gcc/tree.h user/ae/inet6/contrib/gcc/varasm.c user/ae/inet6/contrib/gcclibs/include/libiberty.h user/ae/inet6/contrib/gcclibs/libcpp/ChangeLog.apple user/ae/inet6/contrib/gcclibs/libcpp/charset.c user/ae/inet6/contrib/gcclibs/libcpp/directives.c user/ae/inet6/contrib/gcclibs/libcpp/internal.h user/ae/inet6/contrib/gcclibs/libcpp/lex.c user/ae/inet6/contrib/gcclibs/libiberty/physmem.c user/ae/inet6/contrib/gperf/doc/gperf.1 user/ae/inet6/contrib/gperf/src/options.cc user/ae/inet6/contrib/gperf/src/options.h user/ae/inet6/contrib/gperf/src/options.icc user/ae/inet6/contrib/gperf/src/output.cc user/ae/inet6/contrib/libc++/include/type_traits user/ae/inet6/contrib/libpcap/ieee80211.h user/ae/inet6/contrib/llvm/lib/Target/X86/X86InstrMMX.td user/ae/inet6/crypto/openssl/ssl/d1_both.c user/ae/inet6/crypto/openssl/ssl/s3_both.c user/ae/inet6/crypto/openssl/ssl/s3_lib.c user/ae/inet6/crypto/openssl/ssl/ssl_locl.h user/ae/inet6/crypto/openssl/ssl/t1_enc.c user/ae/inet6/etc/defaults/rc.conf user/ae/inet6/etc/devd/usb.conf user/ae/inet6/etc/ntp.conf user/ae/inet6/gnu/usr.bin/gdb/kgdb/Makefile user/ae/inet6/gnu/usr.bin/gdb/kgdb/main.c user/ae/inet6/lib/libc/net/sctp_sys_calls.c user/ae/inet6/lib/libc/sys/Makefile.inc user/ae/inet6/lib/libc/sys/aio_mlock.2 user/ae/inet6/lib/libc/sys/swapon.2 user/ae/inet6/lib/libcasper/libcasper.c user/ae/inet6/lib/libdevstat/devstat.c user/ae/inet6/lib/libiconv/Makefile user/ae/inet6/lib/libiconv_modules/BIG5/Makefile user/ae/inet6/lib/libiconv_modules/BIG5/citrus_big5.c user/ae/inet6/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c user/ae/inet6/lib/libiconv_modules/EUC/Makefile user/ae/inet6/lib/libiconv_modules/EUC/citrus_euc.c user/ae/inet6/lib/libiconv_modules/EUCTW/Makefile user/ae/inet6/lib/libiconv_modules/EUCTW/citrus_euctw.c user/ae/inet6/lib/libiconv_modules/GBK2K/Makefile user/ae/inet6/lib/libiconv_modules/GBK2K/citrus_gbk2k.c user/ae/inet6/lib/libiconv_modules/HZ/citrus_hz.c user/ae/inet6/lib/libiconv_modules/ISO2022/Makefile user/ae/inet6/lib/libiconv_modules/ISO2022/citrus_iso2022.c user/ae/inet6/lib/libiconv_modules/JOHAB/Makefile user/ae/inet6/lib/libiconv_modules/JOHAB/citrus_johab.c user/ae/inet6/lib/libiconv_modules/MSKanji/citrus_mskanji.c user/ae/inet6/lib/libiconv_modules/UES/Makefile user/ae/inet6/lib/libiconv_modules/UES/citrus_ues.c user/ae/inet6/lib/libiconv_modules/UTF1632/Makefile user/ae/inet6/lib/libiconv_modules/UTF7/Makefile user/ae/inet6/lib/libiconv_modules/UTF7/citrus_utf7.c user/ae/inet6/lib/libiconv_modules/UTF8/citrus_utf8.c user/ae/inet6/lib/libiconv_modules/VIQR/citrus_viqr.c user/ae/inet6/lib/libiconv_modules/ZW/citrus_zw.c user/ae/inet6/lib/libiconv_modules/iconv_std/Makefile user/ae/inet6/lib/libiconv_modules/mapper_parallel/Makefile user/ae/inet6/lib/libiconv_modules/mapper_serial/Makefile user/ae/inet6/lib/libiconv_modules/mapper_std/Makefile user/ae/inet6/lib/libiconv_modules/mapper_zone/Makefile user/ae/inet6/lib/libkvm/kvm.c user/ae/inet6/lib/libkvm/kvm_ia64.c user/ae/inet6/lib/libnetgraph/sock.c user/ae/inet6/lib/libnv/nvlist.c user/ae/inet6/lib/libprocstat/zfs/Makefile user/ae/inet6/lib/libstand/Makefile user/ae/inet6/lib/libusb/Makefile user/ae/inet6/lib/libusb/libusb.3 user/ae/inet6/lib/libusb/libusb.h user/ae/inet6/lib/libusb/libusb10_io.c user/ae/inet6/lib/msun/Makefile user/ae/inet6/lib/msun/Symbol.map user/ae/inet6/lib/msun/ld128/s_expl.c user/ae/inet6/lib/msun/ld80/s_expl.c user/ae/inet6/lib/msun/man/cosh.3 user/ae/inet6/lib/msun/man/sinh.3 user/ae/inet6/lib/msun/man/tanh.3 user/ae/inet6/lib/msun/src/e_cosh.c user/ae/inet6/lib/msun/src/e_sinh.c user/ae/inet6/lib/msun/src/imprecise.c user/ae/inet6/lib/msun/src/math.h user/ae/inet6/lib/msun/src/s_tanh.c user/ae/inet6/release/picobsd/build/picobsd user/ae/inet6/release/release.sh user/ae/inet6/sbin/camcontrol/camcontrol.8 user/ae/inet6/sbin/camcontrol/camcontrol.c user/ae/inet6/sbin/casperd/casperd.c user/ae/inet6/sbin/fsck_ffs/Makefile user/ae/inet6/sbin/fsck_ffs/dir.c user/ae/inet6/sbin/fsck_ffs/fsck.h user/ae/inet6/sbin/fsck_ffs/fsck_ffs.8 user/ae/inet6/sbin/fsck_ffs/fsutil.c user/ae/inet6/sbin/fsck_ffs/main.c user/ae/inet6/sbin/fsck_ffs/pass1.c user/ae/inet6/sbin/fsck_ffs/pass1b.c user/ae/inet6/sbin/fsck_ffs/suj.c user/ae/inet6/sbin/fsck_ffs/utilities.c user/ae/inet6/sbin/fsdb/Makefile user/ae/inet6/sbin/geom/class/eli/geom_eli.c user/ae/inet6/sbin/geom/class/mirror/geom_mirror.c user/ae/inet6/sbin/geom/class/mirror/gmirror.8 user/ae/inet6/sbin/geom/class/part/geom_part.c (contents, props changed) user/ae/inet6/sbin/kldload/kldload.c user/ae/inet6/sbin/nvmecontrol/devlist.c user/ae/inet6/sbin/pfctl/Makefile user/ae/inet6/sbin/pfctl/pfctl_altq.c user/ae/inet6/sbin/pfctl/pfctl_parser.c user/ae/inet6/sbin/pfctl/pfctl_parser.h user/ae/inet6/sbin/route/route.c user/ae/inet6/share/i18n/esdb/UTF/UTF.alias user/ae/inet6/share/man/man4/netmap.4 user/ae/inet6/share/man/man4/run.4 user/ae/inet6/share/man/man5/hosts.5 user/ae/inet6/share/man/man5/hosts.equiv.5 user/ae/inet6/share/man/man5/nsswitch.conf.5 user/ae/inet6/share/man/man5/periodic.conf.5 user/ae/inet6/share/man/man5/rc.conf.5 user/ae/inet6/share/man/man5/resolver.5 user/ae/inet6/share/man/man7/hier.7 user/ae/inet6/share/man/man7/hostname.7 user/ae/inet6/share/man/man7/security.7 user/ae/inet6/share/man/man8/rc.8 user/ae/inet6/share/man/man9/ieee80211_crypto.9 user/ae/inet6/share/mk/bsd.sys.mk user/ae/inet6/share/mk/bsd.test.mk user/ae/inet6/sys/Makefile user/ae/inet6/sys/amd64/amd64/pmap.c user/ae/inet6/sys/amd64/conf/NOTES user/ae/inet6/sys/amd64/include/vmm.h (contents, props changed) user/ae/inet6/sys/amd64/vmm/amd/amdv.c user/ae/inet6/sys/amd64/vmm/intel/ept.c user/ae/inet6/sys/amd64/vmm/intel/ept.h user/ae/inet6/sys/amd64/vmm/intel/vmcs.c user/ae/inet6/sys/amd64/vmm/intel/vmcs.h user/ae/inet6/sys/amd64/vmm/intel/vmx.c user/ae/inet6/sys/amd64/vmm/intel/vmx.h user/ae/inet6/sys/amd64/vmm/intel/vmx_controls.h user/ae/inet6/sys/amd64/vmm/intel/vmx_genassym.c user/ae/inet6/sys/amd64/vmm/intel/vmx_support.S user/ae/inet6/sys/amd64/vmm/io/vhpet.c user/ae/inet6/sys/amd64/vmm/io/vlapic.c user/ae/inet6/sys/amd64/vmm/io/vlapic.h user/ae/inet6/sys/amd64/vmm/vmm.c user/ae/inet6/sys/amd64/vmm/vmm_ipi.c user/ae/inet6/sys/amd64/vmm/vmm_ipi.h user/ae/inet6/sys/amd64/vmm/vmm_lapic.c user/ae/inet6/sys/amd64/vmm/vmm_lapic.h user/ae/inet6/sys/arm/allwinner/a10_machdep.c user/ae/inet6/sys/arm/arm/bus_space_generic.c user/ae/inet6/sys/arm/arm/devmap.c user/ae/inet6/sys/arm/arm/gic.c user/ae/inet6/sys/arm/arm/intr.c user/ae/inet6/sys/arm/arm/machdep.c user/ae/inet6/sys/arm/arm/nexus.c user/ae/inet6/sys/arm/arm/pmap-v6.c user/ae/inet6/sys/arm/arm/trap.c user/ae/inet6/sys/arm/at91/at91.c user/ae/inet6/sys/arm/broadcom/bcm2835/bcm2835_fbd.c user/ae/inet6/sys/arm/broadcom/bcm2835/bcm2835_machdep.c user/ae/inet6/sys/arm/conf/AC100 user/ae/inet6/sys/arm/conf/ARMADAXP user/ae/inet6/sys/arm/conf/ARNDALE user/ae/inet6/sys/arm/conf/ATMEL user/ae/inet6/sys/arm/conf/AVILA user/ae/inet6/sys/arm/conf/BWCT user/ae/inet6/sys/arm/conf/CAMBRIA user/ae/inet6/sys/arm/conf/CNS11XXNAS user/ae/inet6/sys/arm/conf/COSMIC user/ae/inet6/sys/arm/conf/CUBIEBOARD user/ae/inet6/sys/arm/conf/CUBIEBOARD2 user/ae/inet6/sys/arm/conf/DB-78XXX user/ae/inet6/sys/arm/conf/DB-88F5XXX user/ae/inet6/sys/arm/conf/DB-88F6XXX user/ae/inet6/sys/arm/conf/DIGI-CCWMX53 user/ae/inet6/sys/arm/conf/DOCKSTAR user/ae/inet6/sys/arm/conf/EA3250 user/ae/inet6/sys/arm/conf/EB9200 user/ae/inet6/sys/arm/conf/EFIKA_MX user/ae/inet6/sys/arm/conf/ETHERNUT5 user/ae/inet6/sys/arm/conf/HL200 user/ae/inet6/sys/arm/conf/HL201 user/ae/inet6/sys/arm/conf/IMX53-QSB user/ae/inet6/sys/arm/conf/KB920X user/ae/inet6/sys/arm/conf/LN2410SBC user/ae/inet6/sys/arm/conf/NSLU user/ae/inet6/sys/arm/conf/PANDABOARD user/ae/inet6/sys/arm/conf/QILA9G20 user/ae/inet6/sys/arm/conf/RADXA user/ae/inet6/sys/arm/conf/RPI-B user/ae/inet6/sys/arm/conf/SAM9260EK user/ae/inet6/sys/arm/conf/SAM9G20EK user/ae/inet6/sys/arm/conf/SAM9X25EK user/ae/inet6/sys/arm/conf/SHEEVAPLUG user/ae/inet6/sys/arm/conf/SN9G45 user/ae/inet6/sys/arm/conf/TS7800 user/ae/inet6/sys/arm/conf/ZEDBOARD user/ae/inet6/sys/arm/freescale/imx/imx51_ipuv3.c user/ae/inet6/sys/arm/include/devmap.h user/ae/inet6/sys/arm/include/fdt.h user/ae/inet6/sys/arm/include/intr.h user/ae/inet6/sys/arm/include/ofw_machdep.h user/ae/inet6/sys/arm/include/psl.h user/ae/inet6/sys/arm/lpc/lpc_gpio.c user/ae/inet6/sys/arm/lpc/lpc_machdep.c user/ae/inet6/sys/arm/lpc/lpc_mmc.c user/ae/inet6/sys/arm/lpc/lpcreg.h user/ae/inet6/sys/arm/mv/mv_machdep.c user/ae/inet6/sys/arm/mv/mv_pci.c user/ae/inet6/sys/arm/mv/mvvar.h user/ae/inet6/sys/arm/tegra/files.tegra2 user/ae/inet6/sys/arm/tegra/tegra2_machdep.c user/ae/inet6/sys/arm/ti/am335x/am335x_dmtimer.c user/ae/inet6/sys/arm/ti/ti_machdep.c user/ae/inet6/sys/arm/versatile/sp804.c user/ae/inet6/sys/boot/fdt/dts/cubieboard.dts user/ae/inet6/sys/boot/fdt/dts/cubieboard2.dts user/ae/inet6/sys/boot/fdt/dts/dockstar.dts user/ae/inet6/sys/boot/ficl/Makefile user/ae/inet6/sys/boot/i386/Makefile.inc user/ae/inet6/sys/boot/i386/boot2/Makefile user/ae/inet6/sys/boot/i386/gptboot/Makefile user/ae/inet6/sys/boot/i386/gptzfsboot/Makefile user/ae/inet6/sys/boot/i386/zfsboot/Makefile user/ae/inet6/sys/boot/pc98/Makefile.inc user/ae/inet6/sys/boot/pc98/boot2/Makefile user/ae/inet6/sys/boot/usb/Makefile user/ae/inet6/sys/boot/usb/Makefile.test user/ae/inet6/sys/boot/userboot/ficl/Makefile user/ae/inet6/sys/boot/userboot/libstand/Makefile user/ae/inet6/sys/boot/zfs/Makefile user/ae/inet6/sys/boot/zfs/zfsimpl.c user/ae/inet6/sys/cam/cam_debug.h user/ae/inet6/sys/cam/cam_xpt.c user/ae/inet6/sys/cam/scsi/scsi_da.c user/ae/inet6/sys/cam/scsi/scsi_low.c user/ae/inet6/sys/cddl/boot/zfs/zfsimpl.h user/ae/inet6/sys/cddl/compat/opensolaris/sys/time.h user/ae/inet6/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h user/ae/inet6/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/Makefile.files user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/ae/inet6/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/ae/inet6/sys/cddl/dev/dtrace/dtrace_load.c user/ae/inet6/sys/compat/freebsd32/freebsd32_misc.c user/ae/inet6/sys/conf/Makefile.arm user/ae/inet6/sys/conf/files user/ae/inet6/sys/conf/kern.pre.mk user/ae/inet6/sys/conf/options user/ae/inet6/sys/conf/options.arm user/ae/inet6/sys/dev/aac/aac.c user/ae/inet6/sys/dev/aacraid/aacraid.c user/ae/inet6/sys/dev/advansys/adwcam.c user/ae/inet6/sys/dev/ahci/ahci.c user/ae/inet6/sys/dev/aic7xxx/aic79xx.c user/ae/inet6/sys/dev/aic7xxx/aic7xxx.c user/ae/inet6/sys/dev/ale/if_ale.c user/ae/inet6/sys/dev/ath/if_ath_rx_edma.c user/ae/inet6/sys/dev/ath/if_ath_tx.c user/ae/inet6/sys/dev/bge/if_bge.c user/ae/inet6/sys/dev/bwi/if_bwi.c user/ae/inet6/sys/dev/bwn/if_bwn.c user/ae/inet6/sys/dev/bxe/bxe.c user/ae/inet6/sys/dev/bxe/ecore_hsi.h user/ae/inet6/sys/dev/bxe/ecore_sp.c user/ae/inet6/sys/dev/cxgb/common/cxgb_mc5.c user/ae/inet6/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c user/ae/inet6/sys/dev/cxgbe/adapter.h user/ae/inet6/sys/dev/cxgbe/t4_main.c user/ae/inet6/sys/dev/cxgbe/t4_sge.c user/ae/inet6/sys/dev/drm/mach64_dma.c user/ae/inet6/sys/dev/e1000/if_em.c user/ae/inet6/sys/dev/e1000/if_igb.c user/ae/inet6/sys/dev/e1000/if_lem.c user/ae/inet6/sys/dev/ed/if_ed.c user/ae/inet6/sys/dev/ed/if_ed_3c503.c user/ae/inet6/sys/dev/ed/if_ed_pccard.c user/ae/inet6/sys/dev/ed/if_ed_rtl80x9.c user/ae/inet6/sys/dev/ed/if_edreg.h user/ae/inet6/sys/dev/ed/if_edvar.h user/ae/inet6/sys/dev/ed/tc5299jreg.h user/ae/inet6/sys/dev/en/midway.c user/ae/inet6/sys/dev/fb/boot_font.c user/ae/inet6/sys/dev/fb/gallant12x22.c user/ae/inet6/sys/dev/fdt/fdt_common.c user/ae/inet6/sys/dev/fdt/fdt_common.h user/ae/inet6/sys/dev/fdt/fdt_mips.c user/ae/inet6/sys/dev/fdt/fdt_powerpc.c user/ae/inet6/sys/dev/fdt/fdt_x86.c user/ae/inet6/sys/dev/fdt/fdtbus.c user/ae/inet6/sys/dev/fdt/simplebus.c user/ae/inet6/sys/dev/ffec/if_ffec.c user/ae/inet6/sys/dev/firewire/if_fwe.c user/ae/inet6/sys/dev/ie/if_ie.c user/ae/inet6/sys/dev/ipw/if_ipw.c user/ae/inet6/sys/dev/ipw/if_ipwvar.h user/ae/inet6/sys/dev/iscsi/icl.c user/ae/inet6/sys/dev/isp/isp.c user/ae/inet6/sys/dev/isp/isp_freebsd.c user/ae/inet6/sys/dev/iwi/if_iwi.c user/ae/inet6/sys/dev/iwi/if_iwivar.h user/ae/inet6/sys/dev/iwn/if_iwn.c user/ae/inet6/sys/dev/iwn/if_iwn_chip_cfg.h user/ae/inet6/sys/dev/iwn/if_iwn_devid.h user/ae/inet6/sys/dev/iwn/if_iwnvar.h user/ae/inet6/sys/dev/ixgbe/ixgbe.c user/ae/inet6/sys/dev/malo/if_malo.c user/ae/inet6/sys/dev/mcd/mcd.c user/ae/inet6/sys/dev/mpt/mpt.h user/ae/inet6/sys/dev/mpt/mpt_cam.c user/ae/inet6/sys/dev/mpt/mpt_pci.c user/ae/inet6/sys/dev/mpt/mpt_raid.c user/ae/inet6/sys/dev/mwl/if_mwl.c user/ae/inet6/sys/dev/my/if_my.c user/ae/inet6/sys/dev/nand/nand_id.c user/ae/inet6/sys/dev/nand/nandbus.c user/ae/inet6/sys/dev/netmap/if_em_netmap.h user/ae/inet6/sys/dev/netmap/if_igb_netmap.h user/ae/inet6/sys/dev/netmap/if_lem_netmap.h user/ae/inet6/sys/dev/netmap/if_re_netmap.h user/ae/inet6/sys/dev/netmap/ixgbe_netmap.h user/ae/inet6/sys/dev/netmap/netmap.c user/ae/inet6/sys/dev/netmap/netmap_freebsd.c user/ae/inet6/sys/dev/netmap/netmap_generic.c user/ae/inet6/sys/dev/netmap/netmap_kern.h user/ae/inet6/sys/dev/netmap/netmap_mbq.c user/ae/inet6/sys/dev/netmap/netmap_mbq.h user/ae/inet6/sys/dev/netmap/netmap_mem2.c user/ae/inet6/sys/dev/netmap/netmap_mem2.h user/ae/inet6/sys/dev/netmap/netmap_vale.c user/ae/inet6/sys/dev/nvme/nvme_ctrlr.c user/ae/inet6/sys/dev/oce/oce_if.c user/ae/inet6/sys/dev/ral/if_ral_pci.c user/ae/inet6/sys/dev/ral/rt2560.c user/ae/inet6/sys/dev/ral/rt2661.c user/ae/inet6/sys/dev/ral/rt2860.c user/ae/inet6/sys/dev/scc/scc_dev_z8530.c user/ae/inet6/sys/dev/sk/if_sk.c user/ae/inet6/sys/dev/sound/pci/maestro.c user/ae/inet6/sys/dev/sym/sym_hipd.c user/ae/inet6/sys/dev/tpm/tpm.c user/ae/inet6/sys/dev/uart/uart_bus_fdt.c user/ae/inet6/sys/dev/uart/uart_bus_pci.c user/ae/inet6/sys/dev/uart/uart_dev_lpc.c user/ae/inet6/sys/dev/usb/controller/xhci.c user/ae/inet6/sys/dev/usb/usbdevs user/ae/inet6/sys/dev/usb/wlan/if_rsu.c user/ae/inet6/sys/dev/usb/wlan/if_rum.c user/ae/inet6/sys/dev/usb/wlan/if_run.c user/ae/inet6/sys/dev/usb/wlan/if_runreg.h user/ae/inet6/sys/dev/usb/wlan/if_runvar.h user/ae/inet6/sys/dev/usb/wlan/if_uath.c user/ae/inet6/sys/dev/usb/wlan/if_upgt.c user/ae/inet6/sys/dev/usb/wlan/if_ural.c user/ae/inet6/sys/dev/usb/wlan/if_urtw.c user/ae/inet6/sys/dev/usb/wlan/if_urtwn.c user/ae/inet6/sys/dev/usb/wlan/if_zyd.c user/ae/inet6/sys/dev/vt/hw/vga/vga.c user/ae/inet6/sys/dev/vt/hw/xboxfb/xboxfb.c user/ae/inet6/sys/dev/vt/vt.h user/ae/inet6/sys/dev/vt/vt_core.c user/ae/inet6/sys/dev/vt/vt_font.c user/ae/inet6/sys/dev/vxge/vxgehal/vxgehal-ring.c user/ae/inet6/sys/dev/wi/if_wi.c user/ae/inet6/sys/dev/wpi/if_wpi.c user/ae/inet6/sys/dev/wpi/if_wpivar.h user/ae/inet6/sys/fs/nfs/nfs_var.h user/ae/inet6/sys/fs/nfs/nfsrvcache.h user/ae/inet6/sys/fs/nfsserver/nfs_nfsdcache.c user/ae/inet6/sys/fs/nfsserver/nfs_nfsdkrpc.c user/ae/inet6/sys/fs/nfsserver/nfs_nfsdport.c user/ae/inet6/sys/fs/nfsserver/nfs_nfsdstate.c user/ae/inet6/sys/fs/nfsserver/nfs_nfsdsubs.c user/ae/inet6/sys/geom/mirror/g_mirror.c user/ae/inet6/sys/geom/mirror/g_mirror.h user/ae/inet6/sys/geom/mirror/g_mirror_ctl.c user/ae/inet6/sys/geom/part/g_part.c user/ae/inet6/sys/geom/part/g_part.h user/ae/inet6/sys/geom/part/g_part_gpt.c user/ae/inet6/sys/ia64/ia64/dump_machdep.c user/ae/inet6/sys/ia64/include/atomic.h user/ae/inet6/sys/kern/kern_cons.c user/ae/inet6/sys/kern/kern_descrip.c user/ae/inet6/sys/kern/kern_event.c user/ae/inet6/sys/kern/sched_4bsd.c user/ae/inet6/sys/kern/sched_ule.c user/ae/inet6/sys/kern/subr_terminal.c user/ae/inet6/sys/kern/subr_witness.c user/ae/inet6/sys/kern/uipc_syscalls.c user/ae/inet6/sys/kern/vfs_bio.c user/ae/inet6/sys/kern/vfs_cache.c user/ae/inet6/sys/kern/vfs_mountroot.c user/ae/inet6/sys/mips/conf/TP-WN1043ND.hints user/ae/inet6/sys/mips/include/fdt.h user/ae/inet6/sys/modules/aic7xxx/Makefile user/ae/inet6/sys/modules/aic7xxx/ahc/Makefile user/ae/inet6/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile user/ae/inet6/sys/modules/aic7xxx/ahc/ahc_isa/Makefile user/ae/inet6/sys/modules/aic7xxx/ahc/ahc_pci/Makefile user/ae/inet6/sys/modules/aic7xxx/ahd/Makefile user/ae/inet6/sys/modules/ath/Makefile user/ae/inet6/sys/modules/drm2/i915kms/Makefile user/ae/inet6/sys/modules/drm2/radeonkms/Makefile user/ae/inet6/sys/modules/ibcore/Makefile user/ae/inet6/sys/modules/ipfilter/Makefile user/ae/inet6/sys/modules/ipoib/Makefile user/ae/inet6/sys/modules/iwnfw/Makefile user/ae/inet6/sys/modules/mlx4/Makefile user/ae/inet6/sys/modules/mlx4ib/Makefile user/ae/inet6/sys/modules/mlxen/Makefile user/ae/inet6/sys/modules/mthca/Makefile user/ae/inet6/sys/modules/wlan/Makefile user/ae/inet6/sys/net/ieee8023ad_lacp.c user/ae/inet6/sys/net/if.c user/ae/inet6/sys/net/if_lagg.c user/ae/inet6/sys/net/if_lagg.h user/ae/inet6/sys/net/if_tap.c user/ae/inet6/sys/net/if_tun.c user/ae/inet6/sys/net/netmap.h user/ae/inet6/sys/net/netmap_user.h user/ae/inet6/sys/net/radix.c user/ae/inet6/sys/net/radix.h user/ae/inet6/sys/net/radix_mpath.c user/ae/inet6/sys/net/route.c user/ae/inet6/sys/net/route.h user/ae/inet6/sys/net/rtsock.c user/ae/inet6/sys/net/sff8472.h user/ae/inet6/sys/net80211/ieee80211.h user/ae/inet6/sys/net80211/ieee80211_adhoc.c user/ae/inet6/sys/net80211/ieee80211_hostap.c user/ae/inet6/sys/net80211/ieee80211_mesh.c user/ae/inet6/sys/net80211/ieee80211_output.c user/ae/inet6/sys/net80211/ieee80211_proto.c user/ae/inet6/sys/net80211/ieee80211_sta.c user/ae/inet6/sys/net80211/ieee80211_wds.c user/ae/inet6/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c user/ae/inet6/sys/netgraph/netflow/netflow.c user/ae/inet6/sys/netgraph/netflow/netflow_v9.c user/ae/inet6/sys/netgraph/netflow/ng_netflow.c user/ae/inet6/sys/netgraph/netflow/ng_netflow.h user/ae/inet6/sys/netgraph/ng_base.c user/ae/inet6/sys/netgraph/ng_l2tp.c user/ae/inet6/sys/netinet/if_ether.c user/ae/inet6/sys/netinet/in.c user/ae/inet6/sys/netinet/in.h user/ae/inet6/sys/netinet/in_mcast.c user/ae/inet6/sys/netinet/ip_carp.c user/ae/inet6/sys/netinet/ip_output.c user/ae/inet6/sys/netinet/libalias/alias.c user/ae/inet6/sys/netinet/libalias/alias_cuseeme.c user/ae/inet6/sys/netinet/libalias/alias_db.c user/ae/inet6/sys/netinet/libalias/alias_dummy.c user/ae/inet6/sys/netinet/libalias/alias_irc.c user/ae/inet6/sys/netinet/libalias/alias_mod.c user/ae/inet6/sys/netinet/libalias/alias_mod.h user/ae/inet6/sys/netinet/libalias/alias_nbt.c user/ae/inet6/sys/netinet/libalias/alias_pptp.c user/ae/inet6/sys/netinet/libalias/alias_skinny.c user/ae/inet6/sys/netinet/libalias/alias_smedia.c user/ae/inet6/sys/netinet/libalias/libalias.3 user/ae/inet6/sys/netinet/sctp_usrreq.c user/ae/inet6/sys/netinet/sctputil.c user/ae/inet6/sys/netinet/tcp_input.c user/ae/inet6/sys/netinet6/in6.c user/ae/inet6/sys/netinet6/in6_ifattach.c user/ae/inet6/sys/netinet6/in6_mcast.c user/ae/inet6/sys/netinet6/in6_src.c user/ae/inet6/sys/netinet6/in6_var.h user/ae/inet6/sys/netinet6/ip6_mroute.c user/ae/inet6/sys/netinet6/ip6_mroute.h user/ae/inet6/sys/netinet6/mld6.c user/ae/inet6/sys/netinet6/nd6.c user/ae/inet6/sys/netinet6/nd6_nbr.c user/ae/inet6/sys/netinet6/nd6_rtr.c user/ae/inet6/sys/netpfil/ipfw/ip_fw_table.c user/ae/inet6/sys/netpfil/pf/pf_lb.c user/ae/inet6/sys/nfs/nfs_fha.c user/ae/inet6/sys/nfs/nfs_fha.h user/ae/inet6/sys/ofed/drivers/infiniband/hw/mlx4/Makefile user/ae/inet6/sys/ofed/drivers/net/mlx4/Makefile user/ae/inet6/sys/powerpc/powerpc/bus_machdep.c user/ae/inet6/sys/rpc/clnt_dg.c user/ae/inet6/sys/rpc/clnt_vc.c user/ae/inet6/sys/rpc/rpcb_clnt.c user/ae/inet6/sys/rpc/svc.c user/ae/inet6/sys/rpc/svc.h user/ae/inet6/sys/rpc/svc_dg.c user/ae/inet6/sys/rpc/svc_vc.c user/ae/inet6/sys/security/mac/mac_framework.c user/ae/inet6/sys/sys/copyright.h user/ae/inet6/sys/sys/dtrace_bsd.h user/ae/inet6/sys/sys/event.h user/ae/inet6/sys/sys/gpt.h user/ae/inet6/sys/sys/param.h user/ae/inet6/sys/sys/pctrie.h user/ae/inet6/sys/sys/pmckern.h user/ae/inet6/sys/sys/user.h user/ae/inet6/sys/ufs/ffs/ffs_alloc.c user/ae/inet6/sys/ufs/ufs/ufs_quota.c user/ae/inet6/sys/vm/vm_map.c user/ae/inet6/sys/vm/vm_page.c user/ae/inet6/sys/vm/vm_page.h user/ae/inet6/sys/vm/vm_pageout.c user/ae/inet6/sys/vm/vm_phys.c user/ae/inet6/sys/vm/vm_reserv.c user/ae/inet6/sys/x86/include/fdt.h user/ae/inet6/sys/x86/include/ofw_machdep.h user/ae/inet6/sys/x86/x86/mca.c user/ae/inet6/tools/regression/capsicum/libcapsicum/Makefile user/ae/inet6/tools/regression/capsicum/libcapsicum/dns.c user/ae/inet6/tools/regression/capsicum/libcapsicum/grp.c user/ae/inet6/tools/regression/capsicum/libcapsicum/pwd.c user/ae/inet6/tools/regression/capsicum/libcapsicum/sysctl.c user/ae/inet6/tools/test/dtrace/Makefile user/ae/inet6/tools/tools/net80211/stumbler/stumbler.c user/ae/inet6/tools/tools/net80211/w00t/ap/ap.c user/ae/inet6/tools/tools/net80211/w00t/assoc/assoc.c user/ae/inet6/tools/tools/net80211/w00t/expand/expand.c user/ae/inet6/tools/tools/net80211/w00t/prga/prga.c user/ae/inet6/tools/tools/net80211/w00t/redir/redir.c user/ae/inet6/tools/tools/net80211/wesside/wesside/wesside.c user/ae/inet6/tools/tools/net80211/wlaninject/wlaninject.c user/ae/inet6/tools/tools/netmap/bridge.c user/ae/inet6/tools/tools/netmap/nm_util.c user/ae/inet6/tools/tools/netmap/nm_util.h user/ae/inet6/tools/tools/netmap/pcap.c user/ae/inet6/tools/tools/netmap/pkt-gen.c user/ae/inet6/tools/tools/netmap/vale-ctl.c user/ae/inet6/usr.bin/find/find.1 user/ae/inet6/usr.bin/find/function.c user/ae/inet6/usr.bin/iscsictl/iscsictl.8 user/ae/inet6/usr.bin/netstat/if.c user/ae/inet6/usr.bin/netstat/route.c user/ae/inet6/usr.bin/rpcgen/rpc_main.c user/ae/inet6/usr.bin/whois/whois.c user/ae/inet6/usr.sbin/bhyve/Makefile user/ae/inet6/usr.sbin/bhyve/acpi.c user/ae/inet6/usr.sbin/bhyve/acpi.h user/ae/inet6/usr.sbin/bhyve/atpic.c user/ae/inet6/usr.sbin/bhyve/bhyve.8 user/ae/inet6/usr.sbin/bhyve/bhyverun.c user/ae/inet6/usr.sbin/bhyve/elcr.c user/ae/inet6/usr.sbin/bhyve/inout.h user/ae/inet6/usr.sbin/bhyve/mevent.c user/ae/inet6/usr.sbin/bhyve/mevent.h user/ae/inet6/usr.sbin/bhyve/mptbl.c user/ae/inet6/usr.sbin/bhyve/pci_emul.c user/ae/inet6/usr.sbin/bhyve/pci_emul.h user/ae/inet6/usr.sbin/bhyve/pci_lpc.c user/ae/inet6/usr.sbin/bhyve/pci_lpc.h user/ae/inet6/usr.sbin/bhyve/pit_8254.c user/ae/inet6/usr.sbin/bhyve/pmtmr.c user/ae/inet6/usr.sbin/bhyve/post.c user/ae/inet6/usr.sbin/bhyve/rtc.c user/ae/inet6/usr.sbin/bhyve/virtio.c user/ae/inet6/usr.sbin/bhyvectl/bhyvectl.c user/ae/inet6/usr.sbin/bsdinstall/scripts/wlanconfig user/ae/inet6/usr.sbin/bsnmpd/modules/snmp_hast/BEGEMOT-HAST-MIB.txt user/ae/inet6/usr.sbin/bsnmpd/modules/snmp_hast/hast_snmp.c user/ae/inet6/usr.sbin/bsnmpd/modules/snmp_hast/hast_tree.def user/ae/inet6/usr.sbin/crashinfo/crashinfo.sh user/ae/inet6/usr.sbin/makefs/cd9660/iso9660_rrip.c user/ae/inet6/usr.sbin/makefs/cd9660/iso9660_rrip.h user/ae/inet6/usr.sbin/mfiutil/Makefile user/ae/inet6/usr.sbin/ndiscvt/ndisgen.sh user/ae/inet6/usr.sbin/rpc.lockd/kern.c user/ae/inet6/usr.sbin/rpc.lockd/lock_proc.c user/ae/inet6/usr.sbin/rpc.lockd/lockd.c Directory Properties: user/ae/inet6/ (props changed) user/ae/inet6/cddl/ (props changed) user/ae/inet6/cddl/contrib/opensolaris/ (props changed) user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/ae/inet6/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/ae/inet6/contrib/atf/ (props changed) user/ae/inet6/contrib/binutils/ (props changed) user/ae/inet6/contrib/byacc/ (props changed) user/ae/inet6/contrib/gcc/ (props changed) user/ae/inet6/contrib/libc++/ (props changed) user/ae/inet6/contrib/libpcap/ (props changed) user/ae/inet6/contrib/llvm/ (props changed) user/ae/inet6/crypto/openssl/ (props changed) user/ae/inet6/etc/ (props changed) user/ae/inet6/gnu/usr.bin/gdb/ (props changed) user/ae/inet6/lib/libc/ (props changed) user/ae/inet6/sbin/ (props changed) user/ae/inet6/share/man/man4/ (props changed) user/ae/inet6/sys/ (props changed) user/ae/inet6/sys/amd64/vmm/ (props changed) user/ae/inet6/sys/boot/ (props changed) user/ae/inet6/sys/cddl/contrib/opensolaris/ (props changed) user/ae/inet6/sys/conf/ (props changed) user/ae/inet6/usr.sbin/bhyve/ (props changed) user/ae/inet6/usr.sbin/bhyvectl/ (props changed) user/ae/inet6/usr.sbin/ndiscvt/ (props changed) Modified: user/ae/inet6/COPYRIGHT ============================================================================== --- user/ae/inet6/COPYRIGHT Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/COPYRIGHT Fri Jan 10 13:08:21 2014 (r260512) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: user/ae/inet6/Makefile.inc1 ============================================================================== --- user/ae/inet6/Makefile.inc1 Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/Makefile.inc1 Fri Jan 10 13:08:21 2014 (r260512) @@ -1369,15 +1369,6 @@ kernel-tools: .MAKE mkdir -p ${MAKEOBJDIRPREFIX}/usr mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ -p ${MAKEOBJDIRPREFIX}/usr >/dev/null -.for _tool in \ - sys/dev/aic7xxx/aicasm - ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ - cd ${.CURDIR}/${_tool} && \ - ${MAKE} DIRPRFX=${_tool}/ obj && \ - ${MAKE} DIRPRFX=${_tool}/ depend && \ - ${MAKE} DIRPRFX=${_tool}/ all && \ - ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX} install -.endfor # # cross-tools: Build cross-building tools Modified: user/ae/inet6/UPDATING ============================================================================== --- user/ae/inet6/UPDATING Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/UPDATING Fri Jan 10 13:08:21 2014 (r260512) @@ -31,6 +31,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20140110: + If a Makefile in a tests/ directory was auto-generating a Kyuafile + instead of providing an explicit one, this would prevent such + Makefile from providing its own Kyuafile in the future during + NO_CLEAN builds. This has been fixed in the Makefiles but manual + intervention is needed to clean an objdir if you use NO_CLEAN: + # find /usr/obj -name Kyuafile | xargs rm -f + 20131213: The behavior of gss_pseudo_random() for the krb5 mechanism has changed, for applications requesting a longer random string Modified: user/ae/inet6/bin/ps/ps.1 ============================================================================== --- user/ae/inet6/bin/ps/ps.1 Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/ps/ps.1 Fri Jan 10 13:08:21 2014 (r260512) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd March 15, 2013 +.Dd December 27, 2013 .Dt PS 1 .Os .Sh NAME @@ -416,8 +416,9 @@ The process has reduced CPU scheduling p .It Li s The process is a session leader. .It Li V -The process is suspended during a -.Xr vfork 2 . +The process' parent is suspended during a +.Xr vfork 2 , +waiting for the process to exec or exit. .It Li W The process is swapped out. .It Li X Modified: user/ae/inet6/bin/sh/input.c ============================================================================== --- user/ae/inet6/bin/sh/input.c Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/input.c Fri Jan 10 13:08:21 2014 (r260512) @@ -228,7 +228,6 @@ preadbuffer(void) { char *p, *q; int more; - int something; char savec; if (parsefile->strpush) { @@ -252,24 +251,18 @@ again: q = p = parsefile->buf + (parsenextc - parsefile->buf); /* delete nul characters */ - something = 0; for (more = 1; more;) { switch (*p) { case '\0': p++; /* Skip nul */ goto check; - case '\t': - case ' ': - break; - case '\n': parsenleft = q - parsenextc; more = 0; /* Stop processing here */ break; default: - something = 1; break; } @@ -288,7 +281,8 @@ check: *q = '\0'; #ifndef NO_HISTORY - if (parsefile->fd == 0 && hist && something) { + if (parsefile->fd == 0 && hist && + parsenextc[strspn(parsenextc, " \t\n")] != '\0') { HistEvent he; INTOFF; history(hist, &he, whichprompt == 1 ? H_ENTER : H_ADD, Modified: user/ae/inet6/bin/sh/sh.1 ============================================================================== --- user/ae/inet6/bin/sh/sh.1 Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/sh.1 Fri Jan 10 13:08:21 2014 (r260512) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 1, 2013 +.Dd January 3, 2014 .Dt SH 1 .Os .Sh NAME @@ -235,10 +235,16 @@ or .Dq Li || operator; or if the command is a pipeline preceded by the .Ic !\& -operator. +keyword. If a shell function is executed and its exit status is explicitly tested, all commands of the function are considered to be tested as well. +.Pp +It is recommended to check for failures explicitly +instead of relying on +.Fl e +because it tends to behave in unexpected ways, +particularly in larger scripts. .It Fl f Li noglob Disable pathname expansion. .It Fl h Li trackall Copied: user/ae/inet6/bin/sh/tests/Kyuafile (from r260511, head/bin/sh/tests/Kyuafile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ae/inet6/bin/sh/tests/Kyuafile Fri Jan 10 13:08:21 2014 (r260512, copy of r260511, head/bin/sh/tests/Kyuafile) @@ -0,0 +1,12 @@ +-- $FreeBSD$ + +syntax(2) + +test_suite("FreeBSD") + +-- Some tests in here are silently not run when the tests are executed as +-- root. Explicitly tell Kyua to drop privileges. +-- +-- TODO(jmmv): Kyua needs to do this by default, not only when explicitly +-- requested. See https://code.google.com/p/kyua/issues/detail?id=6 +tap_test_program{name="legacy_test", required_user="unprivileged"} Modified: user/ae/inet6/bin/sh/tests/Makefile ============================================================================== --- user/ae/inet6/bin/sh/tests/Makefile Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/tests/Makefile Fri Jan 10 13:08:21 2014 (r260512) @@ -3,6 +3,7 @@ .include TESTSDIR= ${TESTSBASE}/bin/sh +KYUAFILE= yes TAP_TESTS_SH= legacy_test TAP_TESTS_SH_SED_legacy_test= -e 's,__SH__,/bin/sh,g' Modified: user/ae/inet6/bin/sh/tests/parameters/Makefile ============================================================================== --- user/ae/inet6/bin/sh/tests/parameters/Makefile Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/tests/parameters/Makefile Fri Jan 10 13:08:21 2014 (r260512) @@ -10,6 +10,7 @@ FILES+= exitstatus1.0 FILES+= mail1.0 FILES+= mail2.0 FILES+= optind1.0 +FILES+= optind2.0 FILES+= positional1.0 FILES+= positional2.0 FILES+= pwd1.0 Copied: user/ae/inet6/bin/sh/tests/parameters/optind2.0 (from r260511, head/bin/sh/tests/parameters/optind2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ae/inet6/bin/sh/tests/parameters/optind2.0 Fri Jan 10 13:08:21 2014 (r260512, copy of r260511, head/bin/sh/tests/parameters/optind2.0) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +[ "$(OPTIND=42 ${SH} -c 'printf %s "$OPTIND"')" = 1 ] Modified: user/ae/inet6/bin/sh/var.c ============================================================================== --- user/ae/inet6/bin/sh/var.c Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/var.c Fri Jan 10 13:08:21 2014 (r260512) @@ -88,11 +88,9 @@ struct var vifs; struct var vmail; struct var vmpath; struct var vpath; -struct var vppid; struct var vps1; struct var vps2; struct var vps4; -struct var vvers; static struct var voptind; struct var vdisvfork; @@ -111,8 +109,6 @@ static const struct varinit varinit[] = NULL }, { &vpath, 0, "PATH=" _PATH_DEFPATH, changepath }, - { &vppid, VUNSET, "PPID=", - NULL }, /* * vps1 depends on uid */ @@ -180,15 +176,14 @@ initvar(void) vps1.text = __DECONST(char *, geteuid() ? "PS1=$ " : "PS1=# "); vps1.flags = VSTRFIXED|VTEXTFIXED; } - if ((vppid.flags & VEXPORT) == 0) { - fmtstr(ppid, sizeof(ppid), "%d", (int)getppid()); - setvarsafe("PPID", ppid, 0); - } + fmtstr(ppid, sizeof(ppid), "%d", (int)getppid()); + setvarsafe("PPID", ppid, 0); for (envp = environ ; *envp ; envp++) { if (strchr(*envp, '=')) { setvareq(*envp, VEXPORT|VTEXTFIXED); } } + setvareq("OPTIND=1", VTEXTFIXED); } /* Modified: user/ae/inet6/bin/sh/var.h ============================================================================== --- user/ae/inet6/bin/sh/var.h Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/sh/var.h Fri Jan 10 13:08:21 2014 (r260512) @@ -75,7 +75,6 @@ extern struct var vifs; extern struct var vmail; extern struct var vmpath; extern struct var vpath; -extern struct var vppid; extern struct var vps1; extern struct var vps2; extern struct var vps4; Copied: user/ae/inet6/bin/test/tests/Kyuafile (from r260511, head/bin/test/tests/Kyuafile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ae/inet6/bin/test/tests/Kyuafile Fri Jan 10 13:08:21 2014 (r260512, copy of r260511, head/bin/test/tests/Kyuafile) @@ -0,0 +1,12 @@ +-- $FreeBSD$ + +syntax(2) + +test_suite("FreeBSD") + +-- Some tests in here are silently not run when the tests are executed as +-- root. Explicitly tell Kyua to drop privileges. +-- +-- TODO(jmmv): Kyua needs to do this by default, not only when explicitly +-- requested. See https://code.google.com/p/kyua/issues/detail?id=6 +tap_test_program{name="legacy_test", required_user="unprivileged"} Modified: user/ae/inet6/bin/test/tests/Makefile ============================================================================== --- user/ae/inet6/bin/test/tests/Makefile Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/bin/test/tests/Makefile Fri Jan 10 13:08:21 2014 (r260512) @@ -3,6 +3,7 @@ .include TESTSDIR= ${TESTSBASE}/bin/test +KYUAFILE= yes TAP_TESTS_SH= legacy_test Modified: user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Fri Jan 10 13:08:21 2014 (r260512) @@ -14,11 +14,12 @@ .\" .\" Copyright 2012, Richard Lowe. .\" Copyright (c) 2012, Marcelo Araujo . +.\" Copyright (c) 2012 by Delphix. All rights reserved. .\" All Rights Reserved. .\" .\" $FreeBSD$ .\" -.Dd May 10, 2012 +.Dd December 31, 2013 .Dt ZDB 8 .Os .Sh NAME @@ -29,27 +30,35 @@ .Op Fl CumdibcsDvhLXFPA .Op Fl e Op Fl p Ar path... .Op Fl t Ar txg +.Op Fl U Ar cache +.Op Fl M Ar inflight I/Os .Ar poolname .Op Ar object ... .Nm .Op Fl divPA .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache .Ar dataset .Op Ar object ... .Nm .Fl m Op Fl LXFPA .Op Fl t Ar txg .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache .Ar poolname .Nm .Fl R Op Fl A .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache +.Ar poolname .Ar poolname .Ar vdev Ns : Ns Ar offset Ns : Ns Ar size Ns Op Ns : Ns Ar flags .Nm .Fl S .Op Fl AP .Op Fl e Op Fl p Ar path... +.Op Fl U Ar cache +.Ar poolname .Ar poolname .Nm .Fl l @@ -205,6 +214,11 @@ flag specifies the path under which devi .It Fl F Attempt to make an unreadable pool readable by trying progressively older transactions. +.It Fl M Ar inflight I/Os +Limit the number of outstanding checksum I/Os to the specified value. +The default value is 200. This option affects the performance of the +.Fl c +option. .It Fl P Print numbers in an unscaled form more amenable to parsing, eg. 1000000 rather than 1M. @@ -218,9 +232,7 @@ options for a means to see the available transaction numbers. .It Fl U Ar cachefile Use a cache file other than -.Pa /etc/zfs/zpool.cache . -This option is only valid with -.Fl C +.Pa /boot/zfs/zpool.cache . .It Fl v Enable verbosity. Specify multiple times for increased verbosity. Modified: user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Jan 10 13:08:21 2014 (r260512) @@ -89,6 +89,7 @@ extern void dump_intent_log(zilog_t *); uint64_t *zopt_object = NULL; int zopt_objects = 0; libzfs_handle_t *g_zfs; +uint64_t max_inflight = 200; /* * These libumem hooks provide a reasonable set of defaults for the allocator's @@ -110,16 +111,17 @@ static void usage(void) { (void) fprintf(stderr, - "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]]" - "poolname [object...]\n" - " %s [-divPA] [-e -p path...] dataset [object...]\n" - " %s -m [-LXFPA] [-t txg] [-e [-p path...]]" - "poolname [vdev [metaslab...]]\n" - " %s -R [-A] [-e [-p path...]] poolname " - "vdev:offset:size[:flags]\n" - " %s -S [-PA] [-e [-p path...]] poolname\n" - " %s -l [-uA] device\n" - " %s -C [-A] [-U config]\n\n", + "Usage: %s [-CumdibcsDvhLXFPA] [-t txg] [-e [-p path...]] " + "[-U config] [-M inflight I/Os] poolname [object...]\n" + " %s [-divPA] [-e -p path...] [-U config] dataset " + "[object...]\n" + " %s -m [-LXFPA] [-t txg] [-e [-p path...]] [-U config] " + "poolname [vdev [metaslab...]]\n" + " %s -R [-A] [-e [-p path...]] poolname " + "vdev:offset:size[:flags]\n" + " %s -S [-PA] [-e [-p path...]] [-U config] poolname\n" + " %s -l [-uA] device\n" + " %s -C [-A] [-U config]\n\n", cmdname, cmdname, cmdname, cmdname, cmdname, cmdname, cmdname); (void) fprintf(stderr, " Dataset name must include at least one " @@ -164,6 +166,8 @@ usage(void) (void) fprintf(stderr, " -P print numbers in parseable form\n"); (void) fprintf(stderr, " -t -- highest txg to use when " "searching for uberblocks\n"); + (void) fprintf(stderr, " -M -- " + "specify the maximum number of checksumming I/Os [default is 200]"); (void) fprintf(stderr, "Specify an option more than once (e.g. -bb) " "to make only that option verbose\n"); (void) fprintf(stderr, "Default is to dump everything non-verbosely\n"); @@ -760,7 +764,7 @@ dump_dde(const ddt_t *ddt, const ddt_ent if (ddp->ddp_phys_birth == 0) continue; ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); - sprintf_blkptr(blkbuf, &blk); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &blk); (void) printf("index %llx refcnt %llu %s %s\n", (u_longlong_t)index, (u_longlong_t)ddp->ddp_refcnt, types[p], blkbuf); @@ -1020,31 +1024,39 @@ blkid2offset(const dnode_phys_t *dnp, co } static void -sprintf_blkptr_compact(char *blkbuf, const blkptr_t *bp) +snprintf_blkptr_compact(char *blkbuf, size_t buflen, const blkptr_t *bp) { const dva_t *dva = bp->blk_dva; int ndvas = dump_opt['d'] > 5 ? BP_GET_NDVAS(bp) : 1; if (dump_opt['b'] >= 6) { - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, buflen, bp); return; } blkbuf[0] = '\0'; for (int i = 0; i < ndvas; i++) - (void) sprintf(blkbuf + strlen(blkbuf), "%llu:%llx:%llx ", + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), "%llu:%llx:%llx ", (u_longlong_t)DVA_GET_VDEV(&dva[i]), (u_longlong_t)DVA_GET_OFFSET(&dva[i]), (u_longlong_t)DVA_GET_ASIZE(&dva[i])); - (void) sprintf(blkbuf + strlen(blkbuf), - "%llxL/%llxP F=%llu B=%llu/%llu", - (u_longlong_t)BP_GET_LSIZE(bp), - (u_longlong_t)BP_GET_PSIZE(bp), - (u_longlong_t)bp->blk_fill, - (u_longlong_t)bp->blk_birth, - (u_longlong_t)BP_PHYSICAL_BIRTH(bp)); + if (BP_IS_HOLE(bp)) { + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), "B=%llu", + (u_longlong_t)bp->blk_birth); + } else { + (void) snprintf(blkbuf + strlen(blkbuf), + buflen - strlen(blkbuf), + "%llxL/%llxP F=%llu B=%llu/%llu", + (u_longlong_t)BP_GET_LSIZE(bp), + (u_longlong_t)BP_GET_PSIZE(bp), + (u_longlong_t)bp->blk_fill, + (u_longlong_t)bp->blk_birth, + (u_longlong_t)BP_PHYSICAL_BIRTH(bp)); + } } static void @@ -1069,7 +1081,7 @@ print_indirect(blkptr_t *bp, const zbook } } - sprintf_blkptr_compact(blkbuf, bp); + snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp); (void) printf("%s\n", blkbuf); } @@ -1084,7 +1096,7 @@ visit_indirect(spa_t *spa, const dnode_p print_indirect(bp, zb, dnp); - if (BP_GET_LEVEL(bp) > 0) { + if (BP_GET_LEVEL(bp) > 0 && !BP_IS_HOLE(bp)) { uint32_t flags = ARC_WAIT; int i; blkptr_t *cbp; @@ -1209,7 +1221,7 @@ dump_dsl_dataset(objset_t *os, uint64_t zdb_nicenum(ds->ds_compressed_bytes, compressed); zdb_nicenum(ds->ds_uncompressed_bytes, uncompressed); zdb_nicenum(ds->ds_unique_bytes, unique); - sprintf_blkptr(blkbuf, &ds->ds_bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &ds->ds_bp); (void) printf("\t\tdir_obj = %llu\n", (u_longlong_t)ds->ds_dir_obj); @@ -1254,7 +1266,7 @@ dump_bptree_cb(void *arg, const blkptr_t char blkbuf[BP_SPRINTF_LEN]; if (bp->blk_birth != 0) { - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("\t%s\n", blkbuf); } return (0); @@ -1292,7 +1304,7 @@ dump_bpobj_cb(void *arg, const blkptr_t char blkbuf[BP_SPRINTF_LEN]; ASSERT(bp->blk_birth != 0); - sprintf_blkptr_compact(blkbuf, bp); + snprintf_blkptr_compact(blkbuf, sizeof (blkbuf), bp); (void) printf("\t%s\n", blkbuf); return (0); } @@ -1791,8 +1803,9 @@ dump_dir(objset_t *os) zdb_nicenum(refdbytes, numbuf); if (verbosity >= 4) { - (void) sprintf(blkbuf, ", rootbp "); - (void) sprintf_blkptr(blkbuf + strlen(blkbuf), os->os_rootbp); + (void) snprintf(blkbuf, sizeof (blkbuf), ", rootbp "); + (void) snprintf_blkptr(blkbuf + strlen(blkbuf), + sizeof (blkbuf) - strlen(blkbuf), os->os_rootbp); } else { blkbuf[0] = '\0'; } @@ -1822,7 +1835,7 @@ dump_dir(objset_t *os) if (verbosity < 2) return; - if (os->os_rootbp->blk_birth == 0) + if (BP_IS_HOLE(os->os_rootbp)) return; dump_object(os, 0, verbosity, &print_header); @@ -1863,7 +1876,7 @@ dump_uberblock(uberblock_t *ub, const ch (u_longlong_t)ub->ub_timestamp, asctime(localtime(×tamp))); if (dump_opt['u'] >= 3) { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, &ub->ub_rootbp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), &ub->ub_rootbp); (void) printf("\trootbp = %s\n", blkbuf); } (void) printf(footer ? footer : ""); @@ -2154,16 +2167,68 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t * bp, NULL, NULL, ZIO_FLAG_CANFAIL)), ==, 0); } +/* ARGSUSED */ +static void +zdb_blkptr_done(zio_t *zio) +{ + spa_t *spa = zio->io_spa; + blkptr_t *bp = zio->io_bp; + int ioerr = zio->io_error; + zdb_cb_t *zcb = zio->io_private; + zbookmark_t *zb = &zio->io_bookmark; + + zio_data_buf_free(zio->io_data, zio->io_size); + + mutex_enter(&spa->spa_scrub_lock); + spa->spa_scrub_inflight--; + cv_broadcast(&spa->spa_scrub_io_cv); + + if (ioerr && !(zio->io_flags & ZIO_FLAG_SPECULATIVE)) { + char blkbuf[BP_SPRINTF_LEN]; + + zcb->zcb_haderrors = 1; + zcb->zcb_errors[ioerr]++; + + if (dump_opt['b'] >= 2) + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); + else + blkbuf[0] = '\0'; + + (void) printf("zdb_blkptr_cb: " + "Got error %d reading " + "<%llu, %llu, %lld, %llx> %s -- skipping\n", + ioerr, + (u_longlong_t)zb->zb_objset, + (u_longlong_t)zb->zb_object, + (u_longlong_t)zb->zb_level, + (u_longlong_t)zb->zb_blkid, + blkbuf); + } + mutex_exit(&spa->spa_scrub_lock); +} + +/* ARGSUSED */ static int zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) { zdb_cb_t *zcb = arg; - char blkbuf[BP_SPRINTF_LEN]; dmu_object_type_t type; boolean_t is_metadata; - if (bp == NULL) + if (dump_opt['b'] >= 5 && bp->blk_birth > 0) { + char blkbuf[BP_SPRINTF_LEN]; + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); + (void) printf("objset %llu object %llu " + "level %lld offset 0x%llx %s\n", + (u_longlong_t)zb->zb_objset, + (u_longlong_t)zb->zb_object, + (longlong_t)zb->zb_level, + (u_longlong_t)blkid2offset(dnp, bp, zb), + blkbuf); + } + + if (BP_IS_HOLE(bp)) return (0); type = BP_GET_TYPE(bp); @@ -2174,53 +2239,26 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog is_metadata = (BP_GET_LEVEL(bp) != 0 || DMU_OT_IS_METADATA(type)); if (dump_opt['c'] > 1 || (dump_opt['c'] && is_metadata)) { - int ioerr; size_t size = BP_GET_PSIZE(bp); - void *data = malloc(size); + void *data = zio_data_buf_alloc(size); int flags = ZIO_FLAG_CANFAIL | ZIO_FLAG_SCRUB | ZIO_FLAG_RAW; /* If it's an intent log block, failure is expected. */ if (zb->zb_level == ZB_ZIL_LEVEL) flags |= ZIO_FLAG_SPECULATIVE; - ioerr = zio_wait(zio_read(NULL, spa, bp, data, size, - NULL, NULL, ZIO_PRIORITY_ASYNC_READ, flags, zb)); - - free(data); - if (ioerr && !(flags & ZIO_FLAG_SPECULATIVE)) { - zcb->zcb_haderrors = 1; - zcb->zcb_errors[ioerr]++; + mutex_enter(&spa->spa_scrub_lock); + while (spa->spa_scrub_inflight > max_inflight) + cv_wait(&spa->spa_scrub_io_cv, &spa->spa_scrub_lock); + spa->spa_scrub_inflight++; + mutex_exit(&spa->spa_scrub_lock); - if (dump_opt['b'] >= 2) - sprintf_blkptr(blkbuf, bp); - else - blkbuf[0] = '\0'; - - (void) printf("zdb_blkptr_cb: " - "Got error %d reading " - "<%llu, %llu, %lld, %llx> %s -- skipping\n", - ioerr, - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (u_longlong_t)zb->zb_level, - (u_longlong_t)zb->zb_blkid, - blkbuf); - } + zio_nowait(zio_read(NULL, spa, bp, data, size, + zdb_blkptr_done, zcb, ZIO_PRIORITY_ASYNC_READ, flags, zb)); } zcb->zcb_readfails = 0; - if (dump_opt['b'] >= 5) { - sprintf_blkptr(blkbuf, bp); - (void) printf("objset %llu object %llu " - "level %lld offset 0x%llx %s\n", - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (longlong_t)zb->zb_level, - (u_longlong_t)blkid2offset(dnp, bp, zb), - blkbuf); - } - if (dump_opt['b'] < 5 && isatty(STDERR_FILENO) && gethrtime() > zcb->zcb_lastprint + NANOSEC) { uint64_t now = gethrtime(); @@ -2377,7 +2415,7 @@ count_block_cb(void *arg, const blkptr_t if (dump_opt['b'] >= 5) { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("[%s] %s\n", "deferred free", blkbuf); } @@ -2433,6 +2471,18 @@ dump_block_stats(spa_t *spa) zcb.zcb_start = zcb.zcb_lastprint = gethrtime(); zcb.zcb_haderrors |= traverse_pool(spa, 0, flags, zdb_blkptr_cb, &zcb); + /* + * If we've traversed the data blocks then we need to wait for those + * I/Os to complete. We leverage "The Godfather" zio to wait on + * all async I/Os to complete. + */ + if (dump_opt['c']) { + (void) zio_wait(spa->spa_async_zio_root); + spa->spa_async_zio_root = zio_root(spa, NULL, NULL, + ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE | + ZIO_FLAG_GODFATHER); + } + if (zcb.zcb_haderrors) { (void) printf("\nError counts:\n\n"); (void) printf("\t%5s %s\n", "errno", "count"); @@ -2599,7 +2649,7 @@ zdb_ddt_add_cb(spa_t *spa, zilog_t *zilo avl_index_t where; zdb_ddt_entry_t *zdde, zdde_search; - if (bp == NULL) + if (BP_IS_HOLE(bp)) return (0); if (dump_opt['S'] > 1 && zb->zb_level == ZB_ROOT_LEVEL) { @@ -2766,7 +2816,7 @@ zdb_print_blkptr(blkptr_t *bp, int flags if (flags & ZDB_FLAG_BSWAP) byteswap_uint64_array((void *)bp, sizeof (blkptr_t)); - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("%s\n", blkbuf); } @@ -3202,7 +3252,7 @@ main(int argc, char **argv) dprintf_setup(&argc, argv); - while ((c = getopt(argc, argv, "bcdhilmsuCDRSAFLXevp:t:U:P")) != -1) { + while ((c = getopt(argc, argv, "bcdhilmM:suCDRSAFLXevp:t:U:P")) != -1) { switch (c) { case 'b': case 'c': @@ -3231,6 +3281,15 @@ main(int argc, char **argv) case 'v': verbose++; break; + case 'M': + max_inflight = strtoull(optarg, NULL, 0); + if (max_inflight == 0) { + (void) fprintf(stderr, "maximum number " + "of inflight I/Os must be greater " + "than 0\n"); + usage(); + } + break; case 'p': if (searchdirs == NULL) { searchdirs = umem_alloc(sizeof (char *), Modified: user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c ============================================================================== --- user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Fri Jan 10 13:08:21 2014 (r260512) @@ -24,6 +24,10 @@ */ /* + * Copyright (c) 2013 by Delphix. All rights reserved. + */ + +/* * Print intent log header and statistics. */ @@ -47,7 +51,7 @@ print_log_bp(const blkptr_t *bp, const c { char blkbuf[BP_SPRINTF_LEN]; - sprintf_blkptr(blkbuf, bp); + snprintf_blkptr(blkbuf, sizeof (blkbuf), bp); (void) printf("%s%s\n", prefix, blkbuf); } @@ -132,6 +136,7 @@ zil_prt_rec_write(zilog_t *zilog, int tx if (lr->lr_common.lrc_reclen == sizeof (lr_write_t)) { (void) printf("%shas blkptr, %s\n", prefix, + !BP_IS_HOLE(bp) && bp->blk_birth >= spa_first_txg(zilog->zl_spa) ? "will claim" : "won't claim"); print_log_bp(bp, prefix); @@ -139,8 +144,6 @@ zil_prt_rec_write(zilog_t *zilog, int tx if (BP_IS_HOLE(bp)) { (void) printf("\t\t\tLSIZE 0x%llx\n", (u_longlong_t)BP_GET_LSIZE(bp)); - } - if (bp->blk_birth == 0) { bzero(buf, sizeof (buf)); (void) printf("%s\n", prefix); return; @@ -313,7 +316,8 @@ print_log_block(zilog_t *zilog, blkptr_t if (verbose >= 5) { (void) strcpy(blkbuf, ", "); - sprintf_blkptr(blkbuf + strlen(blkbuf), bp); + snprintf_blkptr(blkbuf + strlen(blkbuf), + sizeof (blkbuf) - strlen(blkbuf), bp); } else { blkbuf[0] = '\0'; } @@ -361,7 +365,7 @@ dump_intent_log(zilog_t *zilog) int verbose = MAX(dump_opt['d'], dump_opt['i']); int i; - if (zh->zh_log.blk_birth == 0 || verbose < 1) + if (BP_IS_HOLE(&zh->zh_log) || verbose < 1) return; (void) printf("\n ZIL header: claim_txg %llu, " Modified: user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Jan 10 12:33:28 2014 (r260511) +++ user/ae/inet6/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Jan 10 13:08:21 2014 (r260512) @@ -18,7 +18,7 @@ .\" information: Portions Copyright [yyyy] [name of copyright owner] .\" .\" Copyright (c) 2010, Sun Microsystems, Inc. All Rights Reserved. -.\" Copyright (c) 2012 by Delphix. All rights reserved. +.\" Copyright (c) 2013 by Delphix. All rights reserved. .\" Copyright (c) 2011, Pawel Jakub Dawidek .\" Copyright (c) 2012, Glen Barber .\" Copyright (c) 2012, Bryan Drewery @@ -26,10 +26,11 @@ .\" Copyright (c) 2013 Nexenta Systems, Inc. All Rights Reserved. .\" Copyright (c) 2013, Joyent, Inc. All rights reserved. .\" Copyright (c) 2013, Steven Hartland +.\" Copyright (c) 2014, Xin LI .\" .\" $FreeBSD$ .\" -.Dd October 23, 2013 +.Dd January 2, 2014 .Dt ZFS 8 .Os .Sh NAME @@ -57,11 +58,16 @@ .Cm destroy .Op Fl dnpRrv .Sm off -.Ar snapshot -.Op % Ns Ar snapname +.Ar filesystem Ns | Ns volume +.Ns @snap +.Op % Ns Ar snap +.Op , Ns Ar snap Op % Ns Ar snap .Op , Ns ... .Sm on .Nm +.Cm destroy +.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark +.Nm .Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... @@ -102,7 +108,7 @@ .Nm .Cm list .Op Fl r Ns | Ns Fl d Ar depth -.Op Fl H +.Op Fl Hp .Op Fl o Ar property Ns Oo , Ns property Ns Oc Ns ... .Op Fl t Ar type Ns Oo , Ns type Ns Oc Ns ... .Oo Fl s Ar property Oc Ns ... @@ -168,11 +174,19 @@ .Cm unshare .Fl a | Ar filesystem Ns | Ns Ar mountpoint .Nm +.Cm bookmark +.Ar snapshot +.Ar bookmark +.Nm .Cm send .Op Fl DnPpRv .Op Fl i Ar snapshot | Fl I Ar snapshot .Ar snapshot .Nm +.Cm send +.Op Fl i Ar snapshot Ns | Ns bookmark +.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot +.Nm .Cm receive Ns | Ns Cm recv .Op Fl vnFu .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot @@ -1654,6 +1668,13 @@ options, as they can destroy large porti behavior for mounted file systems in use. .It Xo .Nm +.Cm destroy +.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark +.Xc +.Pp +The given bookmark is destroyed. +.It Xo +.Nm .Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... @@ -1686,14 +1707,24 @@ Roll back the given dataset to a previou back, all data that has changed since the snapshot is discarded, and the dataset reverts to the state at the time of the snapshot. By default, the command refuses to roll back to a snapshot other than the most recent one. In -order to do so, all intermediate snapshots must be destroyed by specifying the +order to do so, all intermediate snapshots and bookmarks must be destroyed +by specifying the .Fl r option. +.Pp +The +.Fl rR +options do not recursively destroy the child snapshots of a +recursive snapshot. +Only direct snapshots of the specified filesystem +are destroyed by either of these options. +To completely roll back a +recursive snapshot, you must rollback the individual child snapshots. .Bl -tag -width indent .It Fl r -Recursively destroy any snapshots more recent than the one specified. +Destroy any snapshots and bookmarks more recent than the one specified. .It Fl R -Recursively destroy any more recent snapshots, as well as any clones of those +Destroy any more recent snapshots and bookmarks, as well as any clones of those snapshots. .It Fl f Used with the @@ -1807,7 +1838,7 @@ only dataset that can be renamed recursi .Nm .Cm list .Op Fl r Ns | Ns Fl d Ar depth -.Op Fl H +.Op Fl Hp .Op Fl o Ar property Ns Oo , Ns Ar property Oc Ns ... .Op Fl t Ar type Ns Oo , Ns Ar type Oc Ns ... .Oo Fl s Ar property Oc Ns ... @@ -1838,6 +1869,8 @@ will display only the dataset and its di .It Fl H Used for scripting mode. Do not print headers and separate fields by a single tab instead of arbitrary white space. +.It Fl p +Display numbers in parsable (exact) values. .It Fl o Ar property Ns Oo , Ns Ar property Oc Ns ... A comma-separated list of properties to display. The property must be: .Bl -bullet -offset 2n @@ -1866,7 +1899,7 @@ syntax. A comma-separated list of types to display, where .Ar type is one of -.Sy filesystem , snapshot , snap, volume , No or Sy all . +.Sy filesystem , snapshot , snap , volume , bookmark , No or Sy all . For example, specifying .Fl t Cm snapshot displays only snapshots. @@ -1963,7 +1996,7 @@ sections. The special value .Cm all can be used to display all properties that apply to the given dataset's type -(filesystem, volume, or snapshot). +(filesystem, volume, snapshot, or bookmark). .Bl -tag -width indent .It Fl r Recursively display properties for any children. @@ -1978,7 +2011,7 @@ Display output in a form more easily par omitted, and fields are explicitly separated by a single tab instead of an arbitrary amount of space. .It Fl p -Display numbers in parseable (exact) values. +Display numbers in parsable (exact) values. .It Fl o Cm all | Ar field Ns Oo , Ns Ar field Oc Ns ... A comma-separated list of columns to display. Supported values are .Sy name,property,value,received,source . @@ -2281,6 +2314,26 @@ file system shared on the system. .El .It Xo .Nm +.Cm bookmark +.Ar snapshot +.Ar bookmark +.Xc +.Pp +Creates a bookmark of the given snapshot. +Bookmarks mark the point in time +when the snapshot was created, and can be used as the incremental source for +a +.Qq Nm Cm send +command. +.Pp +This feature must be enabled to be used. +See +.Xr zpool-features 7 +for details on ZFS feature flags and the +.Sy bookmark +feature. +.It Xo +.Nm .Cm send .Op Fl DnPpRv .Op Fl i Ar snapshot | Fl I Ar snapshot @@ -2299,17 +2352,15 @@ a file or to a different system (for exa By default, a full stream is generated. .Bl -tag -width indent .It Fl i Ar snapshot -Generate an incremental stream from the -.Fl i Ar snapshot -to the last -.Ar snapshot . -The incremental source (the -.Fl i Ar snapshot ) -can be specified as the last component of the snapshot name (for example, the -part after the -.Sy @ ) , -and it is assumed to be from the same file system as the last -.Ar snapshot . +Generate an incremental stream from the first +.Ar snapshot Pq the incremental source +to the second +.Ar snapshot Pq the incremental target . +The incremental source can be specified as the last component of the +snapshot name +.Pq the Em @ No character and following +and +it is assumed to be from the same file system as the incremental target. .Pp If the destination is a clone, the source may be the origin snapshot, which must be fully specified (for example, @@ -2317,15 +2368,16 @@ must be fully specified (for example, not just .Cm @origin ) . .It Fl I Ar snapshot -Generate a stream package that sends all intermediary snapshots from the -.Fl I Ar snapshot -to the last +Generate a stream package that sends all intermediary snapshots from the first *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Fri Jan 10 14:56:37 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A448998; Fri, 10 Jan 2014 14:56:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8FF421284; Fri, 10 Jan 2014 14:56:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0AEubjr047429; Fri, 10 Jan 2014 14:56:37 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0AEubPL047428; Fri, 10 Jan 2014 14:56:37 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201401101456.s0AEubPL047428@svn.freebsd.org> From: Julio Merino Date: Fri, 10 Jan 2014 14:56:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r260514 - user/jmmv/autotest/node X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2014 14:56:37 -0000 Author: jmmv Date: Fri Jan 10 14:56:37 2014 New Revision: 260514 URL: http://svnweb.freebsd.org/changeset/base/260514 Log: Install pkgconf into the VM. A couple of atf tests require pkg-config to run, so install pkgconf into the VM. Modified: user/jmmv/autotest/node/iterate.sh Modified: user/jmmv/autotest/node/iterate.sh ============================================================================== --- user/jmmv/autotest/node/iterate.sh Fri Jan 10 14:47:20 2014 (r260513) +++ user/jmmv/autotest/node/iterate.sh Fri Jan 10 14:56:37 2014 (r260514) @@ -207,12 +207,14 @@ autotest_mkimage() { EOF cp /etc/resolv.conf "${chrootdir}/vmimage/mnt/etc" - pkg -c "${chrootdir}/vmimage/mnt" install -y kyua + pkg -c "${chrootdir}/vmimage/mnt" install -y kyua pkgconf rm "${chrootdir}/vmimage/mnt/etc/resolv.conf" cat >>"${chrootdir}/vmimage/mnt/root/.cshrc" <