svn commit: r252316 - in projects/hyperv: . cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common cddl/contrib/opensolaris/lib/libzfs_core/common contrib/gcc etc etc/default...
Peter Grehan
grehan at FreeBSD.org
Thu Jun 27 20:27:41 UTC 2013
Author: grehan
Date: Thu Jun 27 20:27:34 2013
New Revision: 252316
URL: http://svnweb.freebsd.org/changeset/base/252316
Log:
IFC @ r252288
Added:
projects/hyperv/etc/rc.d/swap
- copied unchanged from r252310, head/etc/rc.d/swap
projects/hyperv/etc/rc.d/swaplate
- copied unchanged from r252310, head/etc/rc.d/swaplate
projects/hyperv/sbin/nvmecontrol/devlist.c
- copied unchanged from r252310, head/sbin/nvmecontrol/devlist.c
projects/hyperv/sbin/nvmecontrol/firmware.c
- copied unchanged from r252310, head/sbin/nvmecontrol/firmware.c
projects/hyperv/sbin/nvmecontrol/identify.c
- copied unchanged from r252310, head/sbin/nvmecontrol/identify.c
projects/hyperv/sbin/nvmecontrol/logpage.c
- copied unchanged from r252310, head/sbin/nvmecontrol/logpage.c
projects/hyperv/sbin/nvmecontrol/nvmecontrol.h
- copied unchanged from r252310, head/sbin/nvmecontrol/nvmecontrol.h
projects/hyperv/sbin/nvmecontrol/perftest.c
- copied unchanged from r252310, head/sbin/nvmecontrol/perftest.c
projects/hyperv/sbin/nvmecontrol/reset.c
- copied unchanged from r252310, head/sbin/nvmecontrol/reset.c
projects/hyperv/share/man/man4/qlxge.4
- copied unchanged from r252310, head/share/man/man4/qlxge.4
projects/hyperv/sys/dev/qlxge/
- copied from r252310, head/sys/dev/qlxge/
projects/hyperv/sys/modules/qlxge/
- copied from r252310, head/sys/modules/qlxge/
projects/hyperv/usr.sbin/bsdconfig/share/media/http.subr
- copied unchanged from r252310, head/usr.sbin/bsdconfig/share/media/http.subr
Deleted:
projects/hyperv/etc/rc.d/encswap
projects/hyperv/etc/rc.d/swap1
Modified:
projects/hyperv/ObsoleteFiles.inc
projects/hyperv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c
projects/hyperv/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
projects/hyperv/contrib/gcc/config.gcc
projects/hyperv/contrib/gcc/gthr-posix95.h
projects/hyperv/contrib/gcc/opts.c
projects/hyperv/etc/defaults/rc.conf
projects/hyperv/etc/devd/usb.conf
projects/hyperv/etc/network.subr
projects/hyperv/etc/periodic/daily/450.status-security
projects/hyperv/etc/rc.d/Makefile
projects/hyperv/etc/rc.d/addswap
projects/hyperv/etc/rc.d/fsck
projects/hyperv/etc/rc.d/hostapd
projects/hyperv/etc/rc.d/mdconfig
projects/hyperv/etc/rc.d/sshd
projects/hyperv/gnu/lib/libdialog/Makefile
projects/hyperv/include/paths.h
projects/hyperv/lib/msun/src/s_fma.c
projects/hyperv/lib/msun/src/s_fmal.c
projects/hyperv/release/doc/en_US.ISO8859-1/relnotes/article.xml
projects/hyperv/release/release.sh
projects/hyperv/sbin/mdconfig/mdconfig.c
projects/hyperv/sbin/nvmecontrol/Makefile
projects/hyperv/sbin/nvmecontrol/nvmecontrol.8
projects/hyperv/sbin/nvmecontrol/nvmecontrol.c
projects/hyperv/sbin/swapon/swapon.8
projects/hyperv/sbin/swapon/swapon.c
projects/hyperv/share/man/man4/Makefile
projects/hyperv/share/man/man4/axe.4
projects/hyperv/share/man/man4/urtwn.4
projects/hyperv/share/man/man5/fstab.5
projects/hyperv/share/man/man5/rc.conf.5
projects/hyperv/share/man/man9/Makefile
projects/hyperv/share/man/man9/hhook.9
projects/hyperv/share/man/man9/rmlock.9
projects/hyperv/share/misc/committers-ports.dot
projects/hyperv/share/mk/sys.mk
projects/hyperv/sys/amd64/include/acpica_machdep.h
projects/hyperv/sys/arm/ti/am335x/am335x_lcd.c
projects/hyperv/sys/arm/ti/ti_scm.c
projects/hyperv/sys/cam/scsi/scsi_all.c
projects/hyperv/sys/cddl/compat/opensolaris/sys/mutex.h
projects/hyperv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c
projects/hyperv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c
projects/hyperv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
projects/hyperv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
projects/hyperv/sys/conf/files
projects/hyperv/sys/conf/files.amd64
projects/hyperv/sys/conf/options
projects/hyperv/sys/contrib/dev/acpica/acpica_prep.sh
projects/hyperv/sys/contrib/dev/acpica/changes.txt (contents, props changed)
projects/hyperv/sys/contrib/dev/acpica/common/dmrestag.c
projects/hyperv/sys/contrib/dev/acpica/common/dmtable.c
projects/hyperv/sys/contrib/dev/acpica/common/dmtbdump.c
projects/hyperv/sys/contrib/dev/acpica/common/dmtbinfo.c
projects/hyperv/sys/contrib/dev/acpica/compiler/aslcompile.c
projects/hyperv/sys/contrib/dev/acpica/compiler/aslmessages.h
projects/hyperv/sys/contrib/dev/acpica/compiler/asltree.c
projects/hyperv/sys/contrib/dev/acpica/compiler/aslutils.c
projects/hyperv/sys/contrib/dev/acpica/compiler/dtfield.c
projects/hyperv/sys/contrib/dev/acpica/compiler/dtio.c
projects/hyperv/sys/contrib/dev/acpica/compiler/dttable.c
projects/hyperv/sys/contrib/dev/acpica/compiler/dttemplate.h
projects/hyperv/sys/contrib/dev/acpica/compiler/dtutils.c
projects/hyperv/sys/contrib/dev/acpica/compiler/preprocess.h
projects/hyperv/sys/contrib/dev/acpica/compiler/prscan.c
projects/hyperv/sys/contrib/dev/acpica/components/debugger/dbcmds.c
projects/hyperv/sys/contrib/dev/acpica/components/debugger/dbdisply.c
projects/hyperv/sys/contrib/dev/acpica/components/debugger/dbinput.c
projects/hyperv/sys/contrib/dev/acpica/components/debugger/dbnames.c
projects/hyperv/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
projects/hyperv/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
projects/hyperv/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
projects/hyperv/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
projects/hyperv/sys/contrib/dev/acpica/components/events/evgpeinit.c
projects/hyperv/sys/contrib/dev/acpica/components/executer/exdump.c
projects/hyperv/sys/contrib/dev/acpica/components/namespace/nsdump.c
projects/hyperv/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
projects/hyperv/sys/contrib/dev/acpica/components/namespace/nsxfname.c
projects/hyperv/sys/contrib/dev/acpica/components/resources/rsdump.c
projects/hyperv/sys/contrib/dev/acpica/components/resources/rsutils.c
projects/hyperv/sys/contrib/dev/acpica/components/tables/tbxfroot.c
projects/hyperv/sys/contrib/dev/acpica/components/utilities/uteval.c
projects/hyperv/sys/contrib/dev/acpica/components/utilities/utstring.c
projects/hyperv/sys/contrib/dev/acpica/include/acdisasm.h
projects/hyperv/sys/contrib/dev/acpica/include/acpixf.h
projects/hyperv/sys/contrib/dev/acpica/include/actables.h
projects/hyperv/sys/contrib/dev/acpica/include/actypes.h
projects/hyperv/sys/contrib/dev/acpica/include/acutils.h
projects/hyperv/sys/contrib/dev/acpica/include/platform/acfreebsd.h
projects/hyperv/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
projects/hyperv/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd.c
projects/hyperv/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd_inc.h
projects/hyperv/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_radio.c
projects/hyperv/sys/dev/acpi_support/atk0110.c
projects/hyperv/sys/dev/acpica/acpi_pcib_acpi.c
projects/hyperv/sys/dev/ata/chipsets/ata-intel.c
projects/hyperv/sys/dev/ath/ath_hal/ah.c
projects/hyperv/sys/dev/ath/ath_hal/ah_internal.h
projects/hyperv/sys/dev/ath/if_ath_ahb.c
projects/hyperv/sys/dev/bge/if_bge.c
projects/hyperv/sys/dev/isci/scil/sati_passthrough.c
projects/hyperv/sys/dev/mpt/mpt_cam.c
projects/hyperv/sys/dev/nvme/nvme.h
projects/hyperv/sys/dev/nvme/nvme_ctrlr.c
projects/hyperv/sys/dev/nvme/nvme_private.h
projects/hyperv/sys/dev/nvme/nvme_qpair.c
projects/hyperv/sys/dev/pci/pci.c
projects/hyperv/sys/dev/usb/net/if_axe.c
projects/hyperv/sys/dev/usb/serial/u3g.c
projects/hyperv/sys/dev/usb/serial/umcs.h
projects/hyperv/sys/dev/usb/usbdevs
projects/hyperv/sys/dev/usb/wlan/if_urtwn.c
projects/hyperv/sys/dev/xen/blkfront/blkfront.c
projects/hyperv/sys/dev/xen/blkfront/block.h
projects/hyperv/sys/fs/ext2fs/ext2_alloc.c
projects/hyperv/sys/fs/ext2fs/ext2_balloc.c
projects/hyperv/sys/fs/ext2fs/ext2_bmap.c
projects/hyperv/sys/fs/ext2fs/ext2_extern.h
projects/hyperv/sys/fs/ext2fs/ext2_subr.c
projects/hyperv/sys/fs/ext2fs/fs.h
projects/hyperv/sys/fs/ext2fs/inode.h
projects/hyperv/sys/fs/nfsclient/nfs_clbio.c
projects/hyperv/sys/fs/nfsclient/nfs_clstate.c
projects/hyperv/sys/fs/nfsclient/nfs_clvfsops.c
projects/hyperv/sys/fs/nfsclient/nfs_clvnops.c
projects/hyperv/sys/i386/include/acpica_machdep.h
projects/hyperv/sys/ia64/include/acpica_machdep.h
projects/hyperv/sys/kern/kern_cpuset.c
projects/hyperv/sys/kern/kern_lock.c
projects/hyperv/sys/kern/kern_mutex.c
projects/hyperv/sys/kern/kern_rmlock.c
projects/hyperv/sys/kern/kern_rwlock.c
projects/hyperv/sys/kern/kern_sx.c
projects/hyperv/sys/kern/subr_lock.c
projects/hyperv/sys/mips/conf/AR933X_BASE
projects/hyperv/sys/mips/conf/AR933X_BASE.hints
projects/hyperv/sys/mips/conf/CARAMBOLA2.hints
projects/hyperv/sys/modules/Makefile
projects/hyperv/sys/modules/runfw/Makefile
projects/hyperv/sys/net/route.h
projects/hyperv/sys/net/rtsock.c
projects/hyperv/sys/netinet/ip_input.c
projects/hyperv/sys/netinet/tcp_input.c
projects/hyperv/sys/netinet6/nd6_rtr.c
projects/hyperv/sys/powerpc/ofw/ofw_cpu.c
projects/hyperv/sys/sys/_rmlock.h
projects/hyperv/sys/sys/cpuset.h
projects/hyperv/sys/sys/lock.h
projects/hyperv/sys/sys/rmlock.h
projects/hyperv/sys/vm/uma.h
projects/hyperv/sys/vm/uma_core.c
projects/hyperv/sys/vm/uma_int.h
projects/hyperv/sys/vm/vm_page.c
projects/hyperv/tools/build/mk/OptionalObsoleteFiles.inc
projects/hyperv/tools/tools/ath/Makefile.inc
projects/hyperv/usr.bin/calendar/calendars/calendar.freebsd
projects/hyperv/usr.bin/sed/main.c
projects/hyperv/usr.sbin/acpi/acpidb/acpidb.c
projects/hyperv/usr.sbin/acpi/acpidump/acpi.c
projects/hyperv/usr.sbin/bsdconfig/bsdconfig
projects/hyperv/usr.sbin/bsdconfig/console/console
projects/hyperv/usr.sbin/bsdconfig/console/font
projects/hyperv/usr.sbin/bsdconfig/console/keymap
projects/hyperv/usr.sbin/bsdconfig/console/repeat
projects/hyperv/usr.sbin/bsdconfig/console/saver
projects/hyperv/usr.sbin/bsdconfig/console/screenmap
projects/hyperv/usr.sbin/bsdconfig/console/ttys
projects/hyperv/usr.sbin/bsdconfig/diskmgmt/diskmgmt
projects/hyperv/usr.sbin/bsdconfig/docsinstall/docsinstall
projects/hyperv/usr.sbin/bsdconfig/dot/dot
projects/hyperv/usr.sbin/bsdconfig/include/media.hlp
projects/hyperv/usr.sbin/bsdconfig/include/messages.subr
projects/hyperv/usr.sbin/bsdconfig/mouse/disable
projects/hyperv/usr.sbin/bsdconfig/mouse/enable
projects/hyperv/usr.sbin/bsdconfig/mouse/flags
projects/hyperv/usr.sbin/bsdconfig/mouse/mouse
projects/hyperv/usr.sbin/bsdconfig/mouse/port
projects/hyperv/usr.sbin/bsdconfig/mouse/type
projects/hyperv/usr.sbin/bsdconfig/networking/defaultrouter
projects/hyperv/usr.sbin/bsdconfig/networking/devices
projects/hyperv/usr.sbin/bsdconfig/networking/hostname
projects/hyperv/usr.sbin/bsdconfig/networking/nameservers
projects/hyperv/usr.sbin/bsdconfig/networking/networking
projects/hyperv/usr.sbin/bsdconfig/networking/share/device.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/hostname.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/ipaddr.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/media.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/netmask.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/resolv.subr
projects/hyperv/usr.sbin/bsdconfig/networking/share/routing.subr
projects/hyperv/usr.sbin/bsdconfig/packages/packages
projects/hyperv/usr.sbin/bsdconfig/password/password
projects/hyperv/usr.sbin/bsdconfig/security/kern_securelevel
projects/hyperv/usr.sbin/bsdconfig/security/security
projects/hyperv/usr.sbin/bsdconfig/share/common.subr
projects/hyperv/usr.sbin/bsdconfig/share/device.subr
projects/hyperv/usr.sbin/bsdconfig/share/dialog.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/Makefile
projects/hyperv/usr.sbin/bsdconfig/share/media/any.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/cdrom.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/common.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/directory.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/dos.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/floppy.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/ftp.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/httpproxy.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/nfs.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/options.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/tcpip.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/ufs.subr
projects/hyperv/usr.sbin/bsdconfig/share/media/usb.subr
projects/hyperv/usr.sbin/bsdconfig/share/packages/packages.subr
projects/hyperv/usr.sbin/bsdconfig/share/script.subr
projects/hyperv/usr.sbin/bsdconfig/share/sysrc.subr
projects/hyperv/usr.sbin/bsdconfig/share/variable.subr
projects/hyperv/usr.sbin/bsdconfig/startup/misc
projects/hyperv/usr.sbin/bsdconfig/startup/rcadd
projects/hyperv/usr.sbin/bsdconfig/startup/rcconf
projects/hyperv/usr.sbin/bsdconfig/startup/rcdelete
projects/hyperv/usr.sbin/bsdconfig/startup/rcedit
projects/hyperv/usr.sbin/bsdconfig/startup/rcvar
projects/hyperv/usr.sbin/bsdconfig/startup/startup
projects/hyperv/usr.sbin/bsdconfig/timezone/timezone
projects/hyperv/usr.sbin/bsdconfig/ttys/ttys
projects/hyperv/usr.sbin/bsdconfig/usermgmt/groupadd
projects/hyperv/usr.sbin/bsdconfig/usermgmt/groupdel
projects/hyperv/usr.sbin/bsdconfig/usermgmt/groupedit
projects/hyperv/usr.sbin/bsdconfig/usermgmt/groupinput
projects/hyperv/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
projects/hyperv/usr.sbin/bsdconfig/usermgmt/useradd
projects/hyperv/usr.sbin/bsdconfig/usermgmt/userdel
projects/hyperv/usr.sbin/bsdconfig/usermgmt/useredit
projects/hyperv/usr.sbin/bsdconfig/usermgmt/userinput
projects/hyperv/usr.sbin/bsdconfig/usermgmt/usermgmt
projects/hyperv/usr.sbin/gssd/gssd.8
projects/hyperv/usr.sbin/gssd/gssd.c
projects/hyperv/usr.sbin/mergemaster/mergemaster.8
Directory Properties:
projects/hyperv/ (props changed)
projects/hyperv/cddl/ (props changed)
projects/hyperv/cddl/contrib/opensolaris/ (props changed)
projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
projects/hyperv/contrib/gcc/ (props changed)
projects/hyperv/gnu/lib/ (props changed)
projects/hyperv/sbin/ (props changed)
projects/hyperv/share/man/man4/ (props changed)
projects/hyperv/sys/ (props changed)
projects/hyperv/sys/cddl/contrib/opensolaris/ (props changed)
projects/hyperv/sys/conf/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/common/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/compiler/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/debugger/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/disassembler/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/events/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/executer/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/namespace/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/resources/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/tables/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/components/utilities/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/include/ (props changed)
projects/hyperv/sys/contrib/dev/acpica/os_specific/ (props changed)
projects/hyperv/sys/dev/usb/serial/uark.c (props changed)
projects/hyperv/usr.bin/calendar/ (props changed)
Modified: projects/hyperv/ObsoleteFiles.inc
==============================================================================
--- projects/hyperv/ObsoleteFiles.inc Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/ObsoleteFiles.inc Thu Jun 27 20:27:34 2013 (r252316)
@@ -38,6 +38,9 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20130623: dialog update from 1.1 to 1.2
+OLD_LIBS+=usr/lib/libdialog.so.7
+OLD_LIBS+=usr/lib32/libdialog.so.7
# 20130616: vfs_mounted.9 removed
OLD_FILES+=usr/share/man/man9/vfs_mount.9.gz
# 20130614: remove CVS from base
Modified: projects/hyperv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- projects/hyperv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -5344,10 +5344,9 @@ main(int argc, char **argv)
* 'freeze' is a vile debugging abomination, so we treat
* it as such.
*/
- char buf[16384];
- int fd = open(ZFS_DEV, O_RDWR);
- (void) strcpy((void *)buf, argv[2]);
- return (!!ioctl(fd, ZFS_IOC_POOL_FREEZE, buf));
+ zfs_cmd_t zc = { 0 };
+ (void) strlcpy(zc.zc_name, argv[2], sizeof (zc.zc_name));
+ return (!!zfs_ioctl(g_zfs, ZFS_IOC_POOL_FREEZE, &zc));
} else {
(void) fprintf(stderr, gettext("unrecognized "
"command '%s'\n"), cmdname);
Modified: projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
==============================================================================
--- projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -21,9 +21,9 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
* Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved.
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
* All rights reserved.
* Copyright (c) 2012 Martin Matuska <mm at FreeBSD.org>. All rights reserved.
@@ -4159,6 +4159,7 @@ struct holdarg {
const char *snapname;
const char *tag;
boolean_t recursive;
+ int error;
};
static int
@@ -4286,15 +4287,20 @@ zfs_release_one(zfs_handle_t *zhp, void
struct holdarg *ha = arg;
char name[ZFS_MAXNAMELEN];
int rv = 0;
+ nvlist_t *existing_holds;
(void) snprintf(name, sizeof (name),
"%s@%s", zhp->zfs_name, ha->snapname);
- if (lzc_exists(name)) {
- nvlist_t *holds = fnvlist_alloc();
- fnvlist_add_boolean(holds, ha->tag);
- fnvlist_add_nvlist(ha->nvl, name, holds);
- fnvlist_free(holds);
+ if (lzc_get_holds(name, &existing_holds) != 0) {
+ ha->error = ENOENT;
+ } else if (!nvlist_exists(existing_holds, ha->tag)) {
+ ha->error = ESRCH;
+ } else {
+ nvlist_t *torelease = fnvlist_alloc();
+ fnvlist_add_boolean(torelease, ha->tag);
+ fnvlist_add_nvlist(ha->nvl, name, torelease);
+ fnvlist_free(torelease);
}
if (ha->recursive)
@@ -4318,16 +4324,21 @@ zfs_release(zfs_handle_t *zhp, const cha
ha.snapname = snapname;
ha.tag = tag;
ha.recursive = recursive;
+ ha.error = 0;
(void) zfs_release_one(zfs_handle_dup(zhp), &ha);
if (nvlist_empty(ha.nvl)) {
fnvlist_free(ha.nvl);
- ret = ENOENT;
+ ret = ha.error;
(void) snprintf(errbuf, sizeof (errbuf),
dgettext(TEXT_DOMAIN,
"cannot release hold from snapshot '%s@%s'"),
zhp->zfs_name, snapname);
- (void) zfs_standard_error(hdl, ret, errbuf);
+ if (ret == ESRCH) {
+ (void) zfs_error(hdl, EZFS_REFTAG_RELE, errbuf);
+ } else {
+ (void) zfs_standard_error(hdl, ret, errbuf);
+ }
return (ret);
}
Modified: projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c
==============================================================================
--- projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -22,6 +22,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Steven Hartland. All rights reserved.
*/
/*
Modified: projects/hyperv/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
==============================================================================
--- projects/hyperv/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -302,11 +302,8 @@ lzc_snapshot(nvlist_t *snaps, nvlist_t *
* marked for deferred destruction, and will be destroyed when the last hold
* or clone is removed/destroyed.
*
- * The return value will be ENOENT if none of the snapshots existed.
- *
* The return value will be 0 if all snapshots were destroyed (or marked for
- * later destruction if 'defer' is set) or didn't exist to begin with and
- * at least one snapshot was destroyed.
+ * later destruction if 'defer' is set) or didn't exist to begin with.
*
* Otherwise the return value will be the errno of a (unspecified) snapshot
* that failed, no snapshots will be destroyed, and the errlist will have an
@@ -397,15 +394,10 @@ lzc_exists(const char *dataset)
* or imported.
*
* Holds for snapshots which don't exist will be skipped and have an entry
- * added to errlist, but will not cause an overall failure, except in the
- * case that all holds where skipped.
- *
- * The return value will be ENOENT if none of the snapshots for the requested
- * holds existed.
+ * added to errlist, but will not cause an overall failure.
*
- * The return value will be 0 if the nvl holds was empty or all holds, for
- * snapshots that existed, were succesfully created and at least one hold
- * was created.
+ * The return value will be 0 if all holds, for snapshots that existed,
+ * were succesfully created.
*
* Otherwise the return value will be the errno of a (unspecified) hold that
* failed and no holds will be created.
@@ -449,13 +441,10 @@ lzc_hold(nvlist_t *holds, int cleanup_fd
* The value is a nvlist whose keys are the holds to remove.
*
* Holds which failed to release because they didn't exist will have an entry
- * added to errlist, but will not cause an overall failure, except in the
- * case that all releases where skipped.
- *
- * The return value will be ENOENT if none of the specified holds existed.
+ * added to errlist, but will not cause an overall failure.
*
* The return value will be 0 if the nvl holds was empty or all holds that
- * existed, were successfully removed and at least one hold was removed.
+ * existed, were successfully removed.
*
* Otherwise the return value will be the errno of a (unspecified) hold that
* failed to release and no holds will be released.
Modified: projects/hyperv/contrib/gcc/config.gcc
==============================================================================
--- projects/hyperv/contrib/gcc/config.gcc Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/contrib/gcc/config.gcc Thu Jun 27 20:27:34 2013 (r252316)
@@ -428,6 +428,10 @@ case ${target} in
tm_defines="${tm_defines} FBSD_MAJOR=8" ;;
*-*-freebsd9 | *-*-freebsd[9].*)
tm_defines="${tm_defines} FBSD_MAJOR=9" ;;
+ *-*-freebsd10 | *-*-freebsd10.*)
+ tm_defines="${tm_defines} FBSD_MAJOR=10" ;;
+ *-*-freebsd11 | *-*-freebsd11.*)
+ tm_defines="${tm_defines} FBSD_MAJOR=11" ;;
*)
echo 'Please update *-*-freebsd* in gcc/config.gcc'
exit 1
Modified: projects/hyperv/contrib/gcc/gthr-posix95.h
==============================================================================
--- projects/hyperv/contrib/gcc/gthr-posix95.h Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/contrib/gcc/gthr-posix95.h Thu Jun 27 20:27:34 2013 (r252316)
@@ -115,9 +115,15 @@ __gthrw(pthread_setschedparam)
it is passed so we cannot pretend that the interface is active if -pthreads
is not specified. On Solaris 2.5.1, the interface is not exposed at all so
we need to play the usual game with weak symbols. On Solaris 10 and up, a
- working interface is always exposed. */
+ working interface is always exposed. On FreeBSD 6 and later, libc also
+ exposes a dummy POSIX threads interface, similar to what Solaris 2.6 up
+ to 9 does. FreeBSD >= 700014 even provides a pthread_cancel stub in libc,
+ which means the alternate __gthread_active_p below cannot be used there. */
-#if defined(__sun) && defined(__svr4__)
+
+ */
+
+#if defined(__FreeBSD__) || defined(__sun) && defined(__svr4__)
static volatile int __gthread_active = -1;
@@ -160,7 +166,7 @@ __gthread_active_p (void)
return __gthread_active_latest_value != 0;
}
-#else /* not Solaris */
+#else /* neither FreeBSD nor Solaris */
static inline int
__gthread_active_p (void)
@@ -170,7 +176,7 @@ __gthread_active_p (void)
return __gthread_active_ptr != 0;
}
-#endif /* Solaris */
+#endif /* FreeBSD or Solaris */
#else /* not SUPPORTS_WEAK */
Modified: projects/hyperv/contrib/gcc/opts.c
==============================================================================
--- projects/hyperv/contrib/gcc/opts.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/contrib/gcc/opts.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -504,7 +504,7 @@ decode_options (unsigned int argc, const
/* XXX: some issues with ports have been traced to -ftree-vrp.
So remove it from -O2 and above. Note that jdk1{5,6} are affected
and they build with w/-O3 - so we cannot just move it to -O3. */
- // flag_tree_vrp = 1;
+ /* flag_tree_vrp = 1; // See GCC tree-optimization/33099 */
if (!optimize_size)
{
Modified: projects/hyperv/etc/defaults/rc.conf
==============================================================================
--- projects/hyperv/etc/defaults/rc.conf Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/defaults/rc.conf Thu Jun 27 20:27:34 2013 (r252316)
@@ -32,8 +32,6 @@ early_late_divider="FILESYSTEMS" # Scrip
always_force_depends="NO" # Set to check that indicated dependencies are
# running during boot (can increase boot time).
-swapfile="NO" # Set to name of swapfile if aux swapfile desired.
-swapfile_mdunit="99" # Swapfile md(4) unit number created by mdconfig(8).
apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO).
apmd_enable="NO" # Run apmd to handle APM event from userland.
apmd_flags="" # Flags to apmd (if enabled).
@@ -85,9 +83,6 @@ geli_autodetach="YES" # Automatically de
#geli_da1_autodetach="NO"
#geli_mirror_home_flags="-k /etc/geli/home.keys"
-geli_swap_flags="-e aes -l 256 -s 4096 -d" # Options for GELI-encrypted
- # swap partitions.
-
root_rw_mount="YES" # Set to NO to inhibit remounting root read-write.
fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails.
fsck_y_flags="" # Additional flags for fsck -y
Modified: projects/hyperv/etc/devd/usb.conf
==============================================================================
--- projects/hyperv/etc/devd/usb.conf Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/devd/usb.conf Thu Jun 27 20:27:34 2013 (r252316)
@@ -4299,7 +4299,7 @@ nomatch 32 {
match "bus" "uhub[0-9]+";
match "mode" "host";
match "vendor" "0x2001";
- match "product" "(0x3307|0x3308|0x3309|0x330a)";
+ match "product" "(0x3307|0x3308|0x3309|0x330a|0x330d)";
action "kldload -n if_urtwn";
};
@@ -4976,5 +4976,5 @@ nomatch 32 {
action "kldload -n umass";
};
-# 2479 USB entries processed
+# 2480 USB entries processed
Modified: projects/hyperv/etc/network.subr
==============================================================================
--- projects/hyperv/etc/network.subr Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/network.subr Thu Jun 27 20:27:34 2013 (r252316)
@@ -171,6 +171,9 @@ ifconfig_up()
if wpaif $1; then
/etc/rc.d/wpa_supplicant start $1
_cfg=0 # XXX: not sure this should count
+ elif hostapif $1; then
+ /etc/rc.d/hostapd start $1
+ _cfg=0
fi
if dhcpif $1; then
@@ -198,6 +201,9 @@ ifconfig_down()
if wpaif $1; then
/etc/rc.d/wpa_supplicant stop $1
_cfg=0
+ elif hostapif $1; then
+ /etc/rc.d/hostapd stop $1
+ _cfg=0
fi
if dhcpif $1; then
@@ -276,6 +282,7 @@ ifconfig_getargs()
[Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ww][Pp][Aa]) ;;
+ [Hh][Oo][Ss][Tt][Aa][Pp]) ;;
*)
_args="$_args $_arg"
;;
@@ -376,6 +383,24 @@ wpaif()
return 1
}
+# hostapif if
+# Returns 0 if the interface is a HOSTAP interface and 1 otherwise.
+hostapif()
+{
+ local _tmpargs _arg
+ _tmpargs=`_ifconfig_getargs $1`
+
+ for _arg in $_tmpargs; do
+ case $_arg in
+ [Hh][Oo][Ss][Tt][Aa][Pp])
+ return 0
+ ;;
+ esac
+ done
+
+ return 1
+}
+
# afexists af
# Returns 0 if the address family is enabled in the kernel
# 1 otherwise.
Modified: projects/hyperv/etc/periodic/daily/450.status-security
==============================================================================
--- projects/hyperv/etc/periodic/daily/450.status-security Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/periodic/daily/450.status-security Thu Jun 27 20:27:34 2013 (r252316)
@@ -18,19 +18,19 @@ case "$daily_status_security_enable" in
case "$daily_status_security_inline" in
[Yy][Ee][Ss])
- export security_output="";;
+ daily_status_security_output="";;
+ esac
+
+ export security_output="${daily_status_security_output}"
+ case "${daily_status_security_output}" in
+ "")
+ rc=3;;
+ /*)
+ echo " (output logged separately)"
+ rc=0;;
*)
- export security_output="${daily_status_security_output}"
- case "${daily_status_security_output}" in
- "")
- rc=3;;
- /*)
- echo " (output logged separately)"
- rc=0;;
- *)
- echo " (output mailed separately)"
- rc=0;;
- esac;;
+ echo " (output mailed separately)"
+ rc=0;;
esac
periodic security || rc=3;;
Modified: projects/hyperv/etc/rc.d/Makefile
==============================================================================
--- projects/hyperv/etc/rc.d/Makefile Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/Makefile Thu Jun 27 20:27:34 2013 (r252316)
@@ -37,7 +37,6 @@ FILES= DAEMON \
dhclient \
dmesg \
dumpon \
- encswap \
faith \
fsck \
ftp-proxy \
@@ -139,7 +138,8 @@ FILES= DAEMON \
static_arp \
static_ndp \
stf \
- swap1 \
+ swap \
+ swaplate \
syscons \
sysctl \
syslogd \
Modified: projects/hyperv/etc/rc.d/addswap
==============================================================================
--- projects/hyperv/etc/rc.d/addswap Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/addswap Thu Jun 27 20:27:34 2013 (r252316)
@@ -13,57 +13,12 @@
. /etc/rc.subr
name="addswap"
-start_cmd="addswap_start"
-stop_cmd="addswap_stop"
+start_cmd=":"
+stop_cmd=":"
+rcvar=
-addswap_start()
-{
- case ${swapfile} in
- [Nn][Oo] | '')
- ;;
- *)
- if [ -w "${swapfile}" ]; then
- check_startmsgs && echo "Adding ${swapfile} as additional swap"
-
- if [ -n "${swapfile_mdunit}" ]; then
- mdev="/dev/md${swapfile_mdunit#md}"
- mdconfig -a -t vnode -f "${swapfile}" -u ${swapfile_mdunit}
- else
- mdev="/dev/`mdconfig -a -t vnode -f "${swapfile}"`"
- fi
-
- if [ $? -eq 0 ]; then
- swapon ${mdev}
- else
- echo "error creating swapfile device"
- fi
- fi
- ;;
- esac
-}
-
-addswap_stop()
-{
- case ${swapfile} in
- [Nn][Oo] | '')
- ;;
- *)
- if [ -n "${swapfile_mdunit}" ]; then
- mdev="/dev/md${swapfile_mdunit#md}"
- else
- mdev="/dev/`mdconfig -lv | grep "${swapfile}" | cut -f1`"
- swapfile_mdunit=${mdev#md}
- fi
- if [ -n "${swapfile_mdunit}" ]; then
- swapctl -l | grep -q ${mdev}
- if [ $? -eq 0 ]; then
- echo "Dismounting swapfile ${swapfile}"
- swapoff ${mdev} && mdconfig -d -u ${swapfile_mdunit}
- fi
- fi
- ;;
- esac
-}
+set_rcvar_obsolete swapfile
+set_rcvar_obsolete geli_swap_flags
load_rc_config $name
run_rc_command "$1"
Modified: projects/hyperv/etc/rc.d/fsck
==============================================================================
--- projects/hyperv/etc/rc.d/fsck Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/fsck Thu Jun 27 20:27:34 2013 (r252316)
@@ -4,7 +4,7 @@
#
# PROVIDE: fsck
-# REQUIRE: localswap
+# REQUIRE: swap
# KEYWORD: nojail
. /etc/rc.subr
Modified: projects/hyperv/etc/rc.d/hostapd
==============================================================================
--- projects/hyperv/etc/rc.d/hostapd Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/hostapd Thu Jun 27 20:27:34 2013 (r252316)
@@ -10,11 +10,18 @@
. /etc/rc.subr
name="hostapd"
-rcvar="hostapd_enable"
command="/usr/sbin/${name}"
-conf_file="/etc/${name}.conf"
-pidfile="/var/run/${name}.pid"
+ifn="$2"
+if [ -z "$ifn" ]; then
+ rcvar="hostapd_enable"
+ conf_file="/etc/${name}.conf"
+ pidfile="/var/run/${name}.pid"
+else
+ rcvar=
+ conf_file="/etc/${name}-${ifn}.conf"
+ pidfile="/var/run/${name}-${ifn}.pid"
+fi
command_args="-P ${pidfile} -B ${conf_file}"
required_files="${conf_file}"
Modified: projects/hyperv/etc/rc.d/mdconfig
==============================================================================
--- projects/hyperv/etc/rc.d/mdconfig Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/mdconfig Thu Jun 27 20:27:34 2013 (r252316)
@@ -28,7 +28,7 @@
#
# PROVIDE: mdconfig
-# REQUIRE: localswap root
+# REQUIRE: swap root
. /etc/rc.subr
Modified: projects/hyperv/etc/rc.d/sshd
==============================================================================
--- projects/hyperv/etc/rc.d/sshd Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/etc/rc.d/sshd Thu Jun 27 20:27:34 2013 (r252316)
@@ -14,8 +14,8 @@ rcvar="sshd_enable"
command="/usr/sbin/${name}"
keygen_cmd="sshd_keygen"
start_precmd="sshd_precmd"
-reload_precmd="sshd_configtest"
-restart_precmd="sshd_configtest"
+reload_precmd="sshd_precmd"
+restart_precmd="sshd_precmd"
configtest_cmd="sshd_configtest"
pidfile="/var/run/${name}.pid"
extra_commands="configtest keygen reload"
Copied: projects/hyperv/etc/rc.d/swap (from r252310, head/etc/rc.d/swap)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/hyperv/etc/rc.d/swap Thu Jun 27 20:27:34 2013 (r252316, copy of r252310, head/etc/rc.d/swap)
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: swap
+# REQUIRE: disks
+# KEYWORD: nojail shutdown
+
+. /etc/rc.subr
+
+name="swap"
+start_cmd='/sbin/swapon -aq'
+stop_cmd=':'
+
+load_rc_config $name
+run_rc_command "$1"
Copied: projects/hyperv/etc/rc.d/swaplate (from r252310, head/etc/rc.d/swaplate)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/hyperv/etc/rc.d/swaplate Thu Jun 27 20:27:34 2013 (r252316, copy of r252310, head/etc/rc.d/swaplate)
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: swaplate
+# REQUIRE: mountlate
+# KEYWORD: nojail shutdown
+
+. /etc/rc.subr
+
+name="swaplate"
+start_cmd='/sbin/swapon -aLq'
+stop_cmd='/sbin/swapoff -aq'
+
+load_rc_config swap
+run_rc_command "$1"
Modified: projects/hyperv/gnu/lib/libdialog/Makefile
==============================================================================
--- projects/hyperv/gnu/lib/libdialog/Makefile Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/gnu/lib/libdialog/Makefile Thu Jun 27 20:27:34 2013 (r252316)
@@ -3,7 +3,7 @@
DIALOG= ${.CURDIR}/../../../contrib/dialog
LIB= dialog
-SHLIB_MAJOR= 7
+SHLIB_MAJOR= 8
SRCS= argv.c arrows.c buildlist.c buttons.c calendar.c checklist.c \
columns.c dlg_keys.c editbox.c fselect.c formbox.c guage.c \
help.c inputbox.c inputstr.c menubox.c mixedform.c \
Modified: projects/hyperv/include/paths.h
==============================================================================
--- projects/hyperv/include/paths.h Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/include/paths.h Thu Jun 27 20:27:34 2013 (r252316)
@@ -57,6 +57,8 @@
#define _PATH_ETC "/etc"
#define _PATH_FTPUSERS "/etc/ftpusers"
#define _PATH_FWMEM "/dev/fwmem"
+#define _PATH_GBDE "/sbin/gbde"
+#define _PATH_GELI "/sbin/geli"
#define _PATH_HALT "/sbin/halt"
#ifdef COMPAT_32BIT
#define _PATH_I18NMODULE "/usr/lib32/i18n"
Modified: projects/hyperv/lib/msun/src/s_fma.c
==============================================================================
--- projects/hyperv/lib/msun/src/s_fma.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/lib/msun/src/s_fma.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -117,7 +117,7 @@ add_and_denormalize(double a, double b,
if (sum.lo != 0) {
EXTRACT_WORD64(hibits, sum.hi);
bits_lost = -((int)(hibits >> 52) & 0x7ff) - scale + 1;
- if (bits_lost != 1 ^ (int)(hibits & 1)) {
+ if ((bits_lost != 1) ^ (int)(hibits & 1)) {
/* hibits += (int)copysign(1.0, sum.hi * sum.lo) */
EXTRACT_WORD64(lobits, sum.lo);
hibits += 1 - (((hibits ^ lobits) >> 62) & 2);
Modified: projects/hyperv/lib/msun/src/s_fmal.c
==============================================================================
--- projects/hyperv/lib/msun/src/s_fmal.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/lib/msun/src/s_fmal.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -113,7 +113,7 @@ add_and_denormalize(long double a, long
if (sum.lo != 0) {
u.e = sum.hi;
bits_lost = -u.bits.exp - scale + 1;
- if (bits_lost != 1 ^ (int)(u.bits.manl & 1))
+ if ((bits_lost != 1) ^ (int)(u.bits.manl & 1))
sum.hi = nextafterl(sum.hi, INFINITY * sum.lo);
}
return (ldexp(sum.hi, scale));
Modified: projects/hyperv/release/doc/en_US.ISO8859-1/relnotes/article.xml
==============================================================================
--- projects/hyperv/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jun 27 20:27:34 2013 (r252316)
@@ -25,6 +25,9 @@
<year>2008</year>
<year>2009</year>
<year>2010</year>
+ <year>2011</year>
+ <year>2012</year>
+ <year>2013</year>
<holder role="mailto:doc at FreeBSD.org">The &os; Documentation Project</holder>
</copyright>
Modified: projects/hyperv/release/release.sh
==============================================================================
--- projects/hyperv/release/release.sh Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/release/release.sh Thu Jun 27 20:27:34 2013 (r252316)
@@ -171,6 +171,17 @@ build_doc_ports() {
fi
}
+# If MAKE_CONF and/or SRC_CONF are set and not character devices (/dev/null),
+# copy them to the chroot.
+if [ -e ${MAKE_CONF} ] && [ ! -c ${MAKE_CONF} ]; then
+ mkdir -p ${CHROOTDIR}/$(dirname ${MAKE_CONF})
+ cp ${MAKE_CONF} ${CHROOTDIR}/${MAKE_CONF}
+fi
+if [ -e ${SRC_CONF} ] && [ ! -c ${SRC_CONF} ]; then
+ mkdir -p ${CHROOTDIR}/$(dirname ${SRC_CONF})
+ cp ${SRC_CONF} ${CHROOTDIR}/${SRC_CONF}
+fi
+
if [ -d ${CHROOTDIR}/usr/ports ]; then
cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf
build_doc_ports ${CHROOTDIR}
Modified: projects/hyperv/sbin/mdconfig/mdconfig.c
==============================================================================
--- projects/hyperv/sbin/mdconfig/mdconfig.c Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/sbin/mdconfig/mdconfig.c Thu Jun 27 20:27:34 2013 (r252316)
@@ -216,8 +216,8 @@ main(int argc, char **argv)
errx(1, "unknown suffix on -s argument");
break;
case 'u':
- if (!strncmp(optarg, _PATH_DEV, 5))
- optarg += 5;
+ if (!strncmp(optarg, _PATH_DEV, sizeof(_PATH_DEV) - 1))
+ optarg += sizeof(_PATH_DEV) - 1;
if (!strncmp(optarg, MD_NAME, sizeof(MD_NAME) - 1))
optarg += sizeof(MD_NAME) - 1;
uflag = optarg;
@@ -510,7 +510,7 @@ static int
md_find(const char *list, const char *name)
{
int ret;
- char num[16];
+ char num[PATH_MAX];
char *ptr, *p, *u;
ret = 0;
@@ -518,10 +518,10 @@ md_find(const char *list, const char *na
if (ptr == NULL)
return (-1);
for (p = ptr; (u = strsep(&p, ",")) != NULL;) {
- if (strncmp(u, _PATH_DEV, 5) == 0)
- u += 5;
+ if (strncmp(u, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
+ u += sizeof(_PATH_DEV) - 1;
/* Just in case user specified number instead of full name */
- snprintf(num, sizeof(num), "md%s", u);
+ snprintf(num, sizeof(num), "%s%s", MD_NAME, u);
if (strcmp(u, name) == 0 || strcmp(num, name) == 0) {
ret = 1;
break;
Modified: projects/hyperv/sbin/nvmecontrol/Makefile
==============================================================================
--- projects/hyperv/sbin/nvmecontrol/Makefile Thu Jun 27 20:21:54 2013 (r252315)
+++ projects/hyperv/sbin/nvmecontrol/Makefile Thu Jun 27 20:27:34 2013 (r252316)
@@ -1,6 +1,8 @@
# $FreeBSD$
PROG= nvmecontrol
+SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \
+ perftest.c reset.c
MAN= nvmecontrol.8
.include <bsd.prog.mk>
Copied: projects/hyperv/sbin/nvmecontrol/devlist.c (from r252310, head/sbin/nvmecontrol/devlist.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/hyperv/sbin/nvmecontrol/devlist.c Thu Jun 27 20:27:34 2013 (r252316, copy of r252310, head/sbin/nvmecontrol/devlist.c)
@@ -0,0 +1,115 @@
+/*-
+ * Copyright (C) 2012-2013 Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysexits.h>
+#include <unistd.h>
+
+#include "nvmecontrol.h"
+
+static void
+devlist_usage(void)
+{
+ fprintf(stderr, "usage:\n");
+ fprintf(stderr, DEVLIST_USAGE);
+ exit(EX_USAGE);
+}
+
+static inline uint32_t
+ns_get_sector_size(struct nvme_namespace_data *nsdata)
+{
+
+ return (1 << nsdata->lbaf[0].lbads);
+}
+
+void
+devlist(int argc, char *argv[])
+{
+ struct nvme_controller_data cdata;
+ struct nvme_namespace_data nsdata;
+ char name[64];
+ uint32_t i;
+ int ch, ctrlr, exit_code, fd, found;
+
+ exit_code = EX_OK;
+
+ while ((ch = getopt(argc, argv, "")) != -1) {
+ switch ((char)ch) {
+ default:
+ devlist_usage();
+ }
+ }
+
+ ctrlr = -1;
+ found = 0;
+
+ while (1) {
+ ctrlr++;
+ sprintf(name, "%s%d", NVME_CTRLR_PREFIX, ctrlr);
+
+ exit_code = open_dev(name, &fd, 0, 0);
+
+ if (exit_code == EX_NOINPUT)
+ break;
+ else if (exit_code == EX_NOPERM) {
+ printf("Could not open /dev/%s, errno = %d (%s)\n",
+ name, errno, strerror(errno));
+ continue;
+ }
+
+ found++;
+ read_controller_data(fd, &cdata);
+ printf("%6s: %s\n", name, cdata.mn);
+
+ for (i = 0; i < cdata.nn; i++) {
+ sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr,
+ NVME_NS_PREFIX, i+1);
+ read_namespace_data(fd, i+1, &nsdata);
+ printf(" %10s (%lldGB)\n",
+ name,
+ nsdata.nsze *
+ (long long)ns_get_sector_size(&nsdata) /
+ 1024 / 1024 / 1024);
+ }
+
+ close(fd);
+ }
+
+ if (found == 0)
+ printf("No NVMe controllers found.\n");
+
+ exit(EX_OK);
+}
Copied: projects/hyperv/sbin/nvmecontrol/firmware.c (from r252310, head/sbin/nvmecontrol/firmware.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/hyperv/sbin/nvmecontrol/firmware.c Thu Jun 27 20:27:34 2013 (r252316, copy of r252310, head/sbin/nvmecontrol/firmware.c)
@@ -0,0 +1,335 @@
+/*-
+ * Copyright (c) 2013 EMC Corp.
+ * All rights reserved.
+ *
+ * Copyright (C) 2012-2013 Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/ioccom.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysexits.h>
+#include <unistd.h>
+
+#include "nvmecontrol.h"
+
+static int
+slot_has_valid_firmware(int fd, int slot)
+{
+ struct nvme_firmware_page fw;
+ int has_fw = false;
+
+ read_logpage(fd, NVME_LOG_FIRMWARE_SLOT,
+ NVME_GLOBAL_NAMESPACE_TAG, &fw, sizeof(fw));
+
+ if (fw.revision[slot-1] != 0LLU)
+ has_fw = true;
+
+ return (has_fw);
+}
+
+static void
+read_image_file(char *path, void **buf, ssize_t *size)
+{
+ struct stat sb;
+ int fd;
+
+ *size = 0;
+ *buf = NULL;
+
+ if ((fd = open(path, O_RDONLY)) < 0) {
+ fprintf(stderr, "Unable to open '%s'.\n", path);
+ exit(EX_IOERR);
+ }
+ if (fstat(fd, &sb) < 0) {
+ fprintf(stderr, "Unable to stat '%s'.\n", path);
+ close(fd);
+ exit(EX_IOERR);
+ }
+ if ((*buf = malloc(sb.st_size)) == NULL) {
+ fprintf(stderr, "Unable to malloc %zd bytes.\n",
+ sb.st_size);
+ close(fd);
+ exit(EX_IOERR);
+ }
+ if ((*size = read(fd, *buf, sb.st_size)) < 0) {
+ fprintf(stderr, "Error reading '%s', errno=%d (%s)\n",
+ path, errno, strerror(errno));
+ close(fd);
+ exit(EX_IOERR);
+ }
+ if (*size != sb.st_size) {
+ fprintf(stderr, "Error reading '%s', "
+ "read %zd bytes, requested %zd bytes\n",
+ path, *size, sb.st_size);
+ close(fd);
+ exit(EX_IOERR);
+ }
+}
+
+static void
+update_firmware(int fd, uint8_t *payload, uint32_t payload_size)
+{
+ struct nvme_pt_command pt;
+ size_t size;
+ void *chunk;
+ uint32_t off, resid;
+ int exit_code = EX_OK;
+
+ off = 0;
+ resid = payload_size;
+
+ if ((chunk = malloc((size_t)NVME_MAX_XFER_SIZE)) == NULL) {
+ printf("Unable to malloc %d bytes.\n", NVME_MAX_XFER_SIZE);
+ exit(EX_IOERR);
+ }
+
+ while (resid > 0) {
+ size = (resid >= NVME_MAX_XFER_SIZE) ?
+ NVME_MAX_XFER_SIZE : resid;
+ memcpy(chunk, payload + off, size);
+
+ memset(&pt, 0, sizeof(pt));
+ pt.cmd.opc = NVME_OPC_FIRMWARE_IMAGE_DOWNLOAD;
+ pt.cmd.cdw10 = (size / sizeof(uint32_t)) - 1;
+ pt.cmd.cdw11 = (off / sizeof(uint32_t));
+ pt.buf = chunk;
+ pt.len = size;
+ pt.is_read = 0;
+
+ if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) {
+ printf("Firmware image download request failed. "
+ "errno=%d (%s)\n",
+ errno, strerror(errno));
+ exit_code = EX_IOERR;
+ break;
+ }
+
+ if (nvme_completion_is_error(&pt.cpl)) {
+ printf("Passthrough command returned error.\n");
+ exit_code = EX_IOERR;
+ break;
+ }
+
+ resid -= size;
+ off += size;
+ }
+
+ if (exit_code != EX_OK)
+ exit(exit_code);
+}
+
+static void
+activate_firmware(int fd, int slot, int activate_action)
+{
+ struct nvme_pt_command pt;
+
+ memset(&pt, 0, sizeof(pt));
+ pt.cmd.opc = NVME_OPC_FIRMWARE_ACTIVATE;
+ pt.cmd.cdw10 = (activate_action << 3) | slot;
+ pt.is_read = 0;
+
+ if (ioctl(fd, NVME_PASSTHROUGH_CMD, &pt) < 0) {
+ printf("Firmware activate request failed. errno=%d (%s)\n",
+ errno, strerror(errno));
+ exit(EX_IOERR);
+ }
+
+ if (nvme_completion_is_error(&pt.cpl)) {
+ printf("Passthrough command returned error.\n");
+ exit(EX_IOERR);
+ }
+}
+
+static void
+firmware_usage(void)
+{
+ fprintf(stderr, "usage:\n");
+ fprintf(stderr, FIRMWARE_USAGE);
+ exit(EX_USAGE);
+}
+
+void
+firmware(int argc, char *argv[])
+{
+ int fd = -1, slot = 0;
+ int a_flag, s_flag, f_flag;
+ char ch, *p, *image = NULL;
+ char *controller = NULL, prompt[64];
+ void *buf = NULL;
+ ssize_t size;
+ struct nvme_controller_data cdata;
+
+ a_flag = s_flag = f_flag = false;
+
+ while ((ch = getopt(argc, argv, "af:s:")) != -1) {
+ switch (ch) {
+ case 'a':
+ a_flag = true;
+ break;
+ case 's':
+ slot = strtol(optarg, &p, 0);
+ if (p != NULL && *p != '\0') {
+ fprintf(stderr,
+ "\"%s\" not valid slot.\n",
+ optarg);
+ firmware_usage();
+ } else if (slot == 0) {
+ fprintf(stderr,
+ "0 is not a valid slot number. "
+ "Slot numbers start at 1.\n");
+ firmware_usage();
+ } else if (slot > 7) {
+ fprintf(stderr,
+ "Slot number %s specified which is "
+ "greater than max allowed slot number of "
+ "7.\n", optarg);
+ firmware_usage();
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list