Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Jul 2012 14:47:16 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r238694 - in projects/fuse: . bin/cat bin/ps bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma cddl/contrib...
Message-ID:  <201207221447.q6MElGoV095846@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Sun Jul 22 14:47:15 2012
New Revision: 238694
URL: http://svn.freebsd.org/changeset/base/238694

Log:
  MFC

Added:
  projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/
     - copied from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/
  projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh
     - copied unchanged from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh
  projects/fuse/share/dtrace/hotopen
     - copied unchanged from r238693, head/share/dtrace/hotopen
  projects/fuse/share/dtrace/nfsattrstats
     - copied unchanged from r238693, head/share/dtrace/nfsattrstats
  projects/fuse/share/examples/libusb20/
     - copied from r238693, head/share/examples/libusb20/
  projects/fuse/tools/tools/ath/athratestats/
     - copied from r238693, head/tools/tools/ath/athratestats/
Deleted:
  projects/fuse/sys/vm/vm_contig.c
Modified:
  projects/fuse/ObsoleteFiles.inc
  projects/fuse/bin/cat/cat.c
  projects/fuse/bin/ps/print.c
  projects/fuse/bin/stty/extern.h
  projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c
  projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c
  projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c
  projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h
  projects/fuse/etc/mtree/BSD.usr.dist
  projects/fuse/etc/rc.d/bgfsck
  projects/fuse/etc/rc.d/ip6addrctl
  projects/fuse/etc/rc.d/jail
  projects/fuse/gnu/usr.bin/groff/tmac/Makefile
  projects/fuse/lib/libc/net/getaddrinfo.c
  projects/fuse/lib/libc/sys/fcntl.2
  projects/fuse/lib/libc/sys/fcntl.c
  projects/fuse/lib/libedit/makelist
  projects/fuse/lib/libedit/tokenizer.c
  projects/fuse/lib/libthr/thread/thr_getschedparam.c
  projects/fuse/lib/libthr/thread/thr_info.c
  projects/fuse/lib/libthr/thread/thr_setprio.c
  projects/fuse/lib/libthr/thread/thr_setschedparam.c
  projects/fuse/sbin/hastd/hast.conf.5
  projects/fuse/sbin/ipfw/ipfw.8
  projects/fuse/share/dtrace/Makefile
  projects/fuse/share/examples/Makefile
  projects/fuse/share/man/man4/gpib.4
  projects/fuse/share/man/man5/moduli.5
  projects/fuse/share/man/man9/ieee80211_node.9
  projects/fuse/share/man/man9/kernel_mount.9
  projects/fuse/share/man/man9/malloc.9
  projects/fuse/sys/amd64/amd64/fpu.c
  projects/fuse/sys/amd64/amd64/machdep.c
  projects/fuse/sys/amd64/amd64/pmap.c
  projects/fuse/sys/amd64/amd64/ptrace_machdep.c
  projects/fuse/sys/amd64/amd64/trap.c
  projects/fuse/sys/amd64/amd64/vm_machdep.c
  projects/fuse/sys/amd64/include/fpu.h
  projects/fuse/sys/amd64/include/pcpu.h
  projects/fuse/sys/arm/arm/nexus.c
  projects/fuse/sys/arm/at91/at91.c
  projects/fuse/sys/arm/econa/econa.c
  projects/fuse/sys/arm/s3c2xx0/s3c24x0.c
  projects/fuse/sys/arm/xscale/i8134x/i81342.c
  projects/fuse/sys/arm/xscale/pxa/pxa_obio.c
  projects/fuse/sys/cam/scsi/scsi_all.c
  projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  projects/fuse/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
  projects/fuse/sys/cddl/dev/dtrace/i386/dtrace_subr.c
  projects/fuse/sys/compat/ia32/ia32_sysvec.c
  projects/fuse/sys/compat/ia32/ia32_util.h
  projects/fuse/sys/conf/files
  projects/fuse/sys/contrib/pf/net/pf_if.c
  projects/fuse/sys/dev/aac/aac_disk.c
  projects/fuse/sys/dev/ata/ata-all.c
  projects/fuse/sys/dev/ata/ata-lowlevel.c
  projects/fuse/sys/dev/ath/ath_hal/ah.h
  projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210.h
  projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c
  projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211.h
  projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c
  projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212.h
  projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
  projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c
  projects/fuse/sys/dev/ath/ath_rate/amrr/amrr.c
  projects/fuse/sys/dev/ath/ath_rate/onoe/onoe.c
  projects/fuse/sys/dev/ath/ath_rate/sample/sample.c
  projects/fuse/sys/dev/ath/ath_rate/sample/sample.h
  projects/fuse/sys/dev/ath/if_ath.c
  projects/fuse/sys/dev/ath/if_ath_beacon.c
  projects/fuse/sys/dev/ath/if_ath_rx.c
  projects/fuse/sys/dev/ath/if_ath_rx_edma.c
  projects/fuse/sys/dev/ath/if_ath_sysctl.c
  projects/fuse/sys/dev/ath/if_ath_tx.c
  projects/fuse/sys/dev/ath/if_athioctl.h
  projects/fuse/sys/dev/ath/if_athrate.h
  projects/fuse/sys/dev/ath/if_athvar.h
  projects/fuse/sys/dev/mps/mps_sas_lsi.c
  projects/fuse/sys/dev/sdhci/sdhci.c
  projects/fuse/sys/dev/sym/sym_hipd.c
  projects/fuse/sys/dev/usb/controller/xhci_pci.c
  projects/fuse/sys/dev/usb/controller/xhcireg.h
  projects/fuse/sys/dev/usb/serial/u3g.c
  projects/fuse/sys/dev/usb/usbdevs
  projects/fuse/sys/fs/smbfs/smbfs_node.c
  projects/fuse/sys/geom/geom.h
  projects/fuse/sys/geom/geom_subr.c
  projects/fuse/sys/geom/part/g_part.c
  projects/fuse/sys/i386/i386/ptrace_machdep.c
  projects/fuse/sys/i386/i386/trap.c
  projects/fuse/sys/i386/include/npx.h
  projects/fuse/sys/i386/isa/npx.c
  projects/fuse/sys/kern/imgact_aout.c
  projects/fuse/sys/kern/imgact_elf.c
  projects/fuse/sys/kern/kern_descrip.c
  projects/fuse/sys/kern/kern_malloc.c
  projects/fuse/sys/kern/kern_proc.c
  projects/fuse/sys/kern/kern_tc.c
  projects/fuse/sys/mips/mips/pmap.c
  projects/fuse/sys/net/if_stf.c
  projects/fuse/sys/netinet/in_var.h
  projects/fuse/sys/netinet/ip_output.c
  projects/fuse/sys/netinet/sctp_asconf.c
  projects/fuse/sys/netinet/sctp_output.c
  projects/fuse/sys/netinet/sctp_pcb.c
  projects/fuse/sys/netinet/sctp_uio.h
  projects/fuse/sys/netinet/sctp_usrreq.c
  projects/fuse/sys/netinet/sctputil.c
  projects/fuse/sys/netinet/tcp_output.c
  projects/fuse/sys/netinet6/sctp6_usrreq.c
  projects/fuse/sys/sys/fcntl.h
  projects/fuse/sys/sys/user.h
  projects/fuse/sys/vm/memguard.c
  projects/fuse/sys/vm/memguard.h
  projects/fuse/sys/vm/vm_kern.c
  projects/fuse/sys/vm/vm_map.h
  projects/fuse/sys/vm/vm_page.c
  projects/fuse/sys/vm/vm_pageout.c
  projects/fuse/sys/vm/vm_pageout.h
  projects/fuse/sys/vm/vm_reserv.c
  projects/fuse/tools/tools/ath/Makefile
  projects/fuse/tools/tools/ath/common/diag.h
  projects/fuse/usr.bin/Makefile
  projects/fuse/usr.bin/du/du.1
  projects/fuse/usr.bin/du/du.c
  projects/fuse/usr.bin/netstat/Makefile
  projects/fuse/usr.bin/netstat/sctp.c
  projects/fuse/usr.bin/procstat/procstat.1
  projects/fuse/usr.bin/procstat/procstat_vm.c
  projects/fuse/usr.sbin/ipfwpcap/ipfwpcap.8
  projects/fuse/usr.sbin/lpr/common_source/common.c
  projects/fuse/usr.sbin/wpa/hostapd/hostapd.8
Directory Properties:
  projects/fuse/   (props changed)
  projects/fuse/cddl/contrib/opensolaris/   (props changed)
  projects/fuse/lib/libc/   (props changed)
  projects/fuse/sbin/   (props changed)
  projects/fuse/sbin/ipfw/   (props changed)
  projects/fuse/share/man/man4/   (props changed)
  projects/fuse/sys/   (props changed)
  projects/fuse/sys/cddl/contrib/opensolaris/   (props changed)
  projects/fuse/sys/conf/   (props changed)
  projects/fuse/sys/contrib/pf/   (props changed)
  projects/fuse/usr.bin/procstat/   (props changed)

Modified: projects/fuse/ObsoleteFiles.inc
==============================================================================
--- projects/fuse/ObsoleteFiles.inc	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/ObsoleteFiles.inc	Sun Jul 22 14:47:15 2012	(r238694)
@@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in
 OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz
 OLD_FILES+=usr/lib32/libkse.so
 OLD_LIBS+=usr/lib32/libkse.so.3
+# 20080225: bsdar/bsdranlib rename to ar/ranlib
+OLD_FILES+=usr/bin/bsdar
+OLD_FILES+=usr/bin/bsdranlib
+OLD_FILES+=usr/share/man/man1/bsdar.1.gz
+OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz
 # 20080220: geom_lvm rename to geom_linux_lvm
 OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz
 # 20080126: oldcard.4 removal

Modified: projects/fuse/bin/cat/cat.c
==============================================================================
--- projects/fuse/bin/cat/cat.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/bin/cat/cat.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$");
 #include <err.h>
 #include <fcntl.h>
 #include <locale.h>
+#include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <stddef.h>
 
 static int bflag, eflag, nflag, sflag, tflag, vflag;
 static int rval;
@@ -77,16 +77,20 @@ static void raw_cat(int);
 static int udom_open(const char *path, int flags);
 #endif
 
-/* Memory strategy threshold, in pages: if physmem is larger then this, use a 
- * large buffer */
-#define PHYSPAGES_THRESHOLD (32*1024)
-
-/* Maximum buffer size in bytes - do not allow it to grow larger than this */
-#define BUFSIZE_MAX (2*1024*1024)
-
-/* Small (default) buffer size in bytes. It's inefficient for this to be
- * smaller than MAXPHYS */
-#define BUFSIZE_SMALL (MAXPHYS)
+/*
+ * Memory strategy threshold, in pages: if physmem is larger than this,
+ * use a large buffer.
+ */
+#define	PHYSPAGES_THRESHOLD (32 * 1024)
+
+/* Maximum buffer size in bytes - do not allow it to grow larger than this. */
+#define	BUFSIZE_MAX (2 * 1024 * 1024)
+
+/*
+ * Small (default) buffer size in bytes. It's inefficient for this to be
+ * smaller than MAXPHYS.
+ */
+#define	BUFSIZE_SMALL (MAXPHYS)
 
 int
 main(int argc, char *argv[])
@@ -144,13 +148,12 @@ usage(void)
 static void
 scanfiles(char *argv[], int cooked)
 {
-	int i = 0;
+	int fd, i;
 	char *path;
 	FILE *fp;
 
+	i = 0;
 	while ((path = argv[i]) != NULL || i == 0) {
-		int fd;
-
 		if (path == NULL || strcmp(path, "-") == 0) {
 			filename = "stdin";
 			fd = STDIN_FILENO;
@@ -257,16 +260,16 @@ raw_cat(int rfd)
 	wfd = fileno(stdout);
 	if (buf == NULL) {
 		if (fstat(wfd, &sbuf))
-			err(1, "%s", filename);
+			err(1, "stdout");
 		if (S_ISREG(sbuf.st_mode)) {
 			/* If there's plenty of RAM, use a large copy buffer */
 			if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD)
-				bsize = MIN(BUFSIZE_MAX, MAXPHYS*8);
+				bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8);
 			else
 				bsize = BUFSIZE_SMALL;
 		} else
-			bsize = MAX(sbuf.st_blksize, 
-					(blksize_t)sysconf(_SC_PAGESIZE));
+			bsize = MAX(sbuf.st_blksize,
+			    (blksize_t)sysconf(_SC_PAGESIZE));
 		if ((buf = malloc(bsize)) == NULL)
 			err(1, "malloc() failure of IO buffer");
 	}
@@ -327,7 +330,7 @@ udom_open(const char *path, int flags)
 			break;
 		}
 	}
-	return(fd);
+	return (fd);
 }
 
 #endif

Modified: projects/fuse/bin/ps/print.c
==============================================================================
--- projects/fuse/bin/ps/print.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/bin/ps/print.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused)
 	size_t buflen = 100;
 	char *buf;
 
+	if (!k->ki_valid)
+		return (NULL);
+
 	buf = malloc(buflen);
 	if (buf == NULL)
 		errx(1, "malloc failed");
 
-	if (!k->ki_valid)
-		return (NULL);
 	if (use_ampm < 0)
 		use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0');
 	then = k->ki_p->ki_start.tv_sec;
@@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused)
 	char *buf;
 	size_t buflen = 100;
 
+	if (!k->ki_valid)
+		return (NULL);
+
 	buf = malloc(buflen);
 	if (buf == NULL)
 		errx(1, "malloc failed");
 
-	if (!k->ki_valid)
-		return (NULL);
 	then = k->ki_p->ki_start.tv_sec;
 	(void)strftime(buf, buflen, "%c", localtime(&then));
 	return (buf);

Modified: projects/fuse/bin/stty/extern.h
==============================================================================
--- projects/fuse/bin/stty/extern.h	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/bin/stty/extern.h	Sun Jul 22 14:47:15 2012	(r238694)
@@ -40,6 +40,6 @@ int	ksearch(char ***, struct info *);
 int	msearch(char ***, struct info *);
 void	optlist(void);
 void	print(struct termios *, struct winsize *, int, enum FMT);
-void	usage(void);
+void	usage(void) __dead2;
 
 extern struct cchar cchars1[], cchars2[];

Copied: projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh	Sun Jul 22 14:47:15 2012	(r238694, copy of r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh)
@@ -0,0 +1,76 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2011, Joyent Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+# Test to catch that we properly look for libraries dependencies in
+# our full library parth
+#
+
+if [ $# != 1 ]; then
+	echo expected one argument: '<'dtrace-path'>'
+	exit 2
+fi
+
+libdira=${TMPDIR:-/tmp}/libdepa.$$
+libdirb=${TMPDIR:-/tmp}/libdepb.$$
+libdirc=${TMPDIR:-/tmp}/libdepc.$$
+dtrace=$1
+
+setup_libs()
+{
+        mkdir $libdira
+        mkdir $libdirb
+        mkdir $libdirc
+        cat > $libdira/liba.$$.d <<EOF
+#pragma D depends_on library libb.$$.d
+#pragma D depends_on library libc.$$.d
+#pragma D depends_on library libd.$$.d
+EOF
+        cat > $libdirb/libb.$$.d <<EOF
+#pragma D depends_on library libc.$$.d
+EOF
+        cat > $libdirb/libc.$$.d <<EOF
+EOF
+        cat > $libdirb/libd.$$.d <<EOF
+EOF
+        cat > $libdirc/libe.$$.d <<EOF
+#pragma D depends_on library liba.$$.d
+EOF
+        cat > $libdirc/libf.$$.d <<EOF
+EOF
+}
+
+
+setup_libs
+
+$dtrace -L$libdira -L$libdirb -L$libdirc -e
+
+status=$?
+rm -rf $libdira
+rm -rf $libdirb
+rm -rf $libdirc
+return $status
+

Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c
==============================================================================
--- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -21,6 +21,7 @@
 
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, Joyent Inc. All rights reserved.
  */
 
 /*
@@ -2150,25 +2151,23 @@ dt_lib_depend_free(dtrace_hdl_t *dtp)
 	}
 }
 
-
 /*
- * Open all of the .d library files found in the specified directory and
- * compile each one in topological order to cache its inlines and translators,
- * etc.  We silently ignore any missing directories and other files found
- * therein. We only fail (and thereby fail dt_load_libs()) if we fail to
- * compile a library and the error is something other than #pragma D depends_on.
- * Dependency errors are silently ignored to permit a library directory to
- * contain libraries which may not be accessible depending on our privileges.
+ * Open all the .d library files found in the specified directory and
+ * compile each one of them.  We silently ignore any missing directories and
+ * other files found therein.  We only fail (and thereby fail dt_load_libs()) if
+ * we fail to compile a library and the error is something other than #pragma D
+ * depends_on.  Dependency errors are silently ignored to permit a library
+ * directory to contain libraries which may not be accessible depending on our
+ * privileges.
  */
 static int
 dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path)
 {
 	struct dirent *dp;
-	const char *p;
+	const char *p, *end;
 	DIR *dirp;
 
 	char fname[PATH_MAX];
-	dtrace_prog_t *pgp;
 	FILE *fp;
 	void *rv;
 	dt_lib_depend_t *dld;
@@ -2192,9 +2191,28 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons
 			continue;
 		}
 
+		/*
+		 * Skip files whose name match an already processed library
+		 */
+		for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL;
+		    dld = dt_list_next(dld)) {
+			end = strrchr(dld->dtld_library, '/');
+			/* dt_lib_depend_add ensures this */
+			assert(end != NULL);
+			if (strcmp(end + 1, dp->d_name) == 0)
+				break;
+		}
+
+		if (dld != NULL) {
+			dt_dprintf("skipping library %s, already processed "
+			    "library with the same name: %s", dp->d_name,
+			    dld->dtld_library);
+			continue;
+		}
+
 		dtp->dt_filetag = fname;
 		if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0)
-			goto err;
+			return (-1); /* preserve dt_errno */
 
 		rv = dt_compile(dtp, DT_CTX_DPROG,
 		    DTRACE_PROBESPEC_NAME, NULL,
@@ -2203,7 +2221,7 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons
 		if (rv != NULL && dtp->dt_errno &&
 		    (dtp->dt_errno != EDT_COMPILER ||
 		    dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND)))
-			goto err;
+			return (-1); /* preserve dt_errno */
 
 		if (dtp->dt_errno)
 			dt_dprintf("error parsing library %s: %s\n",
@@ -2214,6 +2232,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons
 	}
 
 	(void) closedir(dirp);
+
+	return (0);
+}
+
+/*
+ * Perform a topological sorting of all the libraries found across the entire
+ * dt_lib_path.  Once sorted, compile each one in topological order to cache its
+ * inlines and translators, etc.  We silently ignore any missing directories and
+ * other files found therein. We only fail (and thereby fail dt_load_libs()) if
+ * we fail to compile a library and the error is something other than #pragma D
+ * depends_on.  Dependency errors are silently ignored to permit a library
+ * directory to contain libraries which may not be accessible depending on our
+ * privileges.
+ */
+static int
+dt_load_libs_sort(dtrace_hdl_t *dtp)
+{
+	dtrace_prog_t *pgp;
+	FILE *fp;
+	dt_lib_depend_t *dld;
+
 	/*
 	 * Finish building the graph containing the library dependencies
 	 * and perform a topological sort to generate an ordered list
@@ -2274,7 +2313,14 @@ dt_load_libs(dtrace_hdl_t *dtp)
 
 	dtp->dt_cflags |= DTRACE_C_NOLIBS;
 
-	for (dirp = dt_list_next(&dtp->dt_lib_path);
+	/*
+	 * /usr/lib/dtrace is always at the head of the list. The rest of the
+	 * list is specified in the precedence order the user requested. Process
+	 * everything other than the head first. DTRACE_C_NOLIBS has already
+	 * been spcified so dt_vopen will ensure that there is always one entry
+	 * in dt_lib_path.
+	 */
+	for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path));
 	    dirp != NULL; dirp = dt_list_next(dirp)) {
 		if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) {
 			dtp->dt_cflags &= ~DTRACE_C_NOLIBS;
@@ -2282,6 +2328,16 @@ dt_load_libs(dtrace_hdl_t *dtp)
 		}
 	}
 
+	/* Handle /usr/lib/dtrace */
+	dirp = dt_list_next(&dtp->dt_lib_path);
+	if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) {
+		dtp->dt_cflags &= ~DTRACE_C_NOLIBS;
+		return (-1); /* errno is set for us */
+	}
+
+	if (dt_load_libs_sort(dtp) < 0)
+		return (-1); /* errno is set for us */
+
 	return (0);
 }
 

Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c
==============================================================================
--- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2011, Joyent Inc. All rights reserved.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
@@ -31,9 +31,13 @@
 #if defined(sun)
 #include <alloca.h>
 #endif
+#include <fcntl.h>
 #include <stdlib.h>
 #include <stdio.h>
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
 #include <dt_parser.h>
 #include <dt_impl.h>
 #include <dt_provider.h>
@@ -201,6 +205,29 @@ dt_pragma_binding(const char *prname, dt
 		dtp->dt_globals->dh_defer = &dt_pragma_apply;
 }
 
+static void 
+dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib,
+    size_t len)
+{
+	dt_dirpath_t *dirp;
+	struct stat sbuf;
+	int found = 0;
+
+	for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL;
+	    dirp = dt_list_next(dirp)) {
+		(void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname);
+
+		if (stat(lib, &sbuf) == 0) {
+			found = 1;
+			break;
+		}
+	}
+
+	if (!found)
+		xyerror(D_PRAGMA_DEPEND,
+		    "failed to find dependency in libpath: %s", lname);
+}
+
 /*
  * The #pragma depends_on directive can be used to express a dependency on a
  * module, provider or library which if not present will cause processing to
@@ -230,16 +257,13 @@ dt_pragma_depends(const char *prname, dt
 		if (yypcb->pcb_cflags & DTRACE_C_CTL) {
 			assert(dtp->dt_filetag != NULL);
 
-			/*
-			 * We have the file we are working on in dtp->dt_filetag
-			 * so find that node and add the dependency in.
-			 */
+			dt_pragma_depends_finddep(dtp, nnp->dn_string, lib,
+			    sizeof (lib));
+
 			dld = dt_lib_depend_lookup(&dtp->dt_lib_dep,
 			    dtp->dt_filetag);
 			assert(dld != NULL);
 
-			(void) snprintf(lib, sizeof (lib), "%s%s",
-			    dld->dtld_libpath, nnp->dn_string);
 			if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies,
 			    lib)) != 0) {
 				xyerror(D_PRAGMA_DEPEND,
@@ -261,8 +285,8 @@ dt_pragma_depends(const char *prname, dt
 			    dtp->dt_filetag);
 			assert(dld != NULL);
 
-			(void) snprintf(lib, sizeof (lib), "%s%s",
-			    dld->dtld_libpath, nnp->dn_string);
+			dt_pragma_depends_finddep(dtp, nnp->dn_string, lib,
+			    sizeof (lib));
 			dld = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted,
 			    lib);
 			assert(dld != NULL);

Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c
==============================================================================
--- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -29,23 +29,6 @@
 #include <ctype.h>
 
 #include <dt_string.h>
-#include <dt_impl.h>
-
-/*
- * Create a copy of string s, but only duplicate the first n bytes.
- */
-char *
-strndup(const char *s, size_t n)
-{
-	char *s2 = malloc(n + 1);
-
-	if (s2 == NULL)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM);
-
-	(void) strncpy(s2, s, n);
-	s2[n] = '\0';
-	return (s2);
-}
 
 /*
  * Transform string s inline, converting each embedded C escape sequence string

Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h
==============================================================================
--- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h	Sun Jul 22 14:47:15 2012	(r238694)
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,14 +19,12 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 #ifndef	_DT_STRING_H
 #define	_DT_STRING_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <sys/types.h>
 #include <strings.h>
@@ -36,7 +33,6 @@
 extern "C" {
 #endif
 
-extern char *strndup(const char *, size_t);
 extern size_t stresc2chr(char *);
 extern char *strchr2esc(const char *, size_t);
 extern const char *strbasename(const char *);

Modified: projects/fuse/etc/mtree/BSD.usr.dist
==============================================================================
--- projects/fuse/etc/mtree/BSD.usr.dist	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/etc/mtree/BSD.usr.dist	Sun Jul 22 14:47:15 2012	(r238694)
@@ -271,6 +271,8 @@
                     ..
                 ..
             ..
+            libusb20
+            ..
             libvgl
             ..
             mdoc

Modified: projects/fuse/etc/rc.d/bgfsck
==============================================================================
--- projects/fuse/etc/rc.d/bgfsck	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/etc/rc.d/bgfsck	Sun Jul 22 14:47:15 2012	(r238694)
@@ -17,7 +17,7 @@ stop_cmd=":"
 bgfsck_start()
 {
 	if [ -z "${rc_force}" ]; then
-		background_fsck_delay=${background_fsck_delay:=0}
+		background_fsck_delay=${background_fsck_delay:-0}
 	else
 		background_fsck_delay=0
 	fi

Modified: projects/fuse/etc/rc.d/ip6addrctl
==============================================================================
--- projects/fuse/etc/rc.d/ip6addrctl	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/etc/rc.d/ip6addrctl	Sun Jul 22 14:47:15 2012	(r238694)
@@ -83,6 +83,9 @@ ip6addrctl_start()
 		# Backward compatibility when ipv6_prefer=NO
 		ip6addrctl_prefer_ipv4
 	;;
+	[Nn][Oo][Nn][Ee])
+		ip6addrctl flush >/dev/null 2>&1
+	;;
 	*)
 		warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \
 		    " \"ipv4_prefer\" is used instead."

Modified: projects/fuse/etc/rc.d/jail
==============================================================================
--- projects/fuse/etc/rc.d/jail	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/etc/rc.d/jail	Sun Jul 22 14:47:15 2012	(r238694)
@@ -641,7 +641,7 @@ jail_start()
 			i=$((i + 1))
 		done
 
-		eval ${_setfib} jail ${_flags} -n ${_jail} -i ${_rootdir} ${_hostname} \
+		eval ${_setfib} jail -n ${_jail} ${_flags} -i ${_rootdir} ${_hostname} \
 			\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \
 			</dev/null
 

Modified: projects/fuse/gnu/usr.bin/groff/tmac/Makefile
==============================================================================
--- projects/fuse/gnu/usr.bin/groff/tmac/Makefile	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/gnu/usr.bin/groff/tmac/Makefile	Sun Jul 22 14:47:15 2012	(r238694)
@@ -68,7 +68,7 @@ beforeinstall:
 	cd ${.CURDIR}; \
 	    ${INSTALL} -o ${TMACOWN} -g ${TMACGRP} -m ${TMACMODE} \
 	    koi8-r.tmac hyphen.ru ${DESTDIR}${TMACDIR}
-	cd ${.OBJDIR}
+	cd ${.OBJDIR};
 .for f in ${STRIPFILES} ${SPECIALFILES}
 	${INSTALL} -o ${TMACOWN} -g ${TMACGRP} -m ${TMACMODE} \
 	    $f-s ${DESTDIR}${TMACDIR}/$f

Modified: projects/fuse/lib/libc/net/getaddrinfo.c
==============================================================================
--- projects/fuse/lib/libc/net/getaddrinfo.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libc/net/getaddrinfo.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -155,7 +155,6 @@ struct explore {
 	int e_af;
 	int e_socktype;
 	int e_protocol;
-	const char *e_protostr;
 	int e_wild;
 #define WILD_AF(ex)		((ex)->e_wild & 0x01)
 #define WILD_SOCKTYPE(ex)	((ex)->e_wild & 0x02)
@@ -164,21 +163,21 @@ struct explore {
 
 static const struct explore explore[] = {
 #if 0
-	{ PF_LOCAL, ANY, ANY, NULL, 0x01 },
+	{ PF_LOCAL, ANY, ANY, 0x01 },
 #endif
 #ifdef INET6
-	{ PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
-	{ PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
-	{ PF_INET6, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 },
-	{ PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 },
-	{ PF_INET6, SOCK_RAW, ANY, NULL, 0x05 },
-#endif
-	{ PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
-	{ PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
-	{ PF_INET, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 },
-	{ PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 },
-	{ PF_INET, SOCK_RAW, ANY, NULL, 0x05 },
-	{ -1, 0, 0, NULL, 0 },
+	{ PF_INET6, SOCK_DGRAM, IPPROTO_UDP, 0x07 },
+	{ PF_INET6, SOCK_STREAM, IPPROTO_TCP, 0x07 },
+	{ PF_INET6, SOCK_STREAM, IPPROTO_SCTP, 0x03 },
+	{ PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 },
+	{ PF_INET6, SOCK_RAW, ANY, 0x05 },
+#endif
+	{ PF_INET, SOCK_DGRAM, IPPROTO_UDP, 0x07 },
+	{ PF_INET, SOCK_STREAM, IPPROTO_TCP, 0x07 },
+	{ PF_INET, SOCK_STREAM, IPPROTO_SCTP, 0x03 },
+	{ PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 },
+	{ PF_INET, SOCK_RAW, ANY, 0x05 },
+	{ -1, 0, 0, 0 },
 };
 
 #ifdef INET6
@@ -693,6 +692,8 @@ get_addrselectpolicy(struct policyhead *
 
 	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0)
 		return (0);
+	if (l == 0)
+		return (0);
 	if ((buf = malloc(l)) == NULL)
 		return (0);
 	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &l, NULL, 0) < 0) {

Modified: projects/fuse/lib/libc/sys/fcntl.2
==============================================================================
--- projects/fuse/lib/libc/sys/fcntl.2	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libc/sys/fcntl.2	Sun Jul 22 14:47:15 2012	(r238694)
@@ -28,7 +28,7 @@
 .\"     @(#)fcntl.2	8.2 (Berkeley) 1/12/94
 .\" $FreeBSD$
 .\"
-.Dd January 28, 2012
+.Dd July 18, 2012
 .Dt FCNTL 2
 .Os
 .Sh NAME
@@ -54,7 +54,7 @@ Depending on the value of
 .Fn fcntl
 can take an additional third argument
 .Fa "int arg" .
-.Bl -tag -width F_GETOWNX
+.Bl -tag -width F_DUPFD_CLOEXEC
 .It Dv F_DUPFD
 Return a new descriptor as follows:
 .Pp
@@ -73,11 +73,22 @@ Same access mode (read, write or read/wr
 Same file status flags (i.e., both file descriptors
 share the same file status flags).
 .It
-The close-on-exec flag associated with the new file descriptor
-is set to remain open across
+The close-on-exec flag
+.Dv FD_CLOEXEC
+associated with the new file descriptor is cleared, so the file descriptor is
+to remain open across
 .Xr execve 2
 system calls.
 .El
+.It Dv F_DUPFD_CLOEXEC
+Like
+.Dv F_DUPFD ,
+but the
+.Dv FD_CLOEXEC
+flag associated with the new file descriptor is set, so the file descriptor
+is closed when
+.Xr execve 2
+system call executes.
 .It Dv F_DUP2FD
 It is functionally equivalent to
 .Bd -literal -offset indent

Modified: projects/fuse/lib/libc/sys/fcntl.c
==============================================================================
--- projects/fuse/lib/libc/sys/fcntl.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libc/sys/fcntl.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -41,7 +41,7 @@ __fcntl_compat(int fd, int cmd, ...)
 {
 	va_list args;
 	long arg;
-	struct oflock ofl;
+	struct __oflock ofl;
 	struct flock *flp;
 	int res;
 

Modified: projects/fuse/lib/libedit/makelist
==============================================================================
--- projects/fuse/lib/libedit/makelist	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libedit/makelist	Sun Jul 22 14:47:15 2012	(r238694)
@@ -1,5 +1,5 @@
 #!/bin/sh -
-#	$NetBSD: makelist,v 1.10 2005/08/08 14:04:49 christos Exp $
+#	$NetBSD: makelist,v 1.11 2005/10/22 16:45:03 christos Exp $
 # $FreeBSD$
 #
 # Copyright (c) 1992, 1993
@@ -141,7 +141,7 @@ case $FLAG in
 #
 -fh)
     cat $FILES | $AWK '/el_action_t/ { print $3 }' | \
-    sort | LC_ALL=C tr 'a-z' 'A-Z' | $AWK '
+    sort | LC_ALL=C tr '[:lower:]' '[:upper:]' | $AWK '
 	BEGIN {
 	    printf("/* Automatically generated file, do not edit */\n");
 	    printf("#ifndef _h_fcns_c\n#define _h_fcns_c\n");

Modified: projects/fuse/lib/libedit/tokenizer.c
==============================================================================
--- projects/fuse/lib/libedit/tokenizer.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libedit/tokenizer.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$NetBSD: tokenizer.c,v 1.14 2003/12/05 13:37:48 lukem Exp $
+ *	$NetBSD: tokenizer.c,v 1.15 2009/02/15 21:55:23 christos Exp $
  */
 
 #if !defined(lint) && !defined(SCCSID)
@@ -198,7 +198,7 @@ tok_line(Tokenizer *tok, const LineInfo 
 			ptr = "";
 		if (ptr == line->cursor) {
 			cc = tok->argc;
-			co = tok->wptr - tok->wstart;
+			co = (int)(tok->wptr - tok->wstart);
 		}
 		switch (*ptr) {
 		case '\'':
@@ -417,7 +417,7 @@ tok_line(Tokenizer *tok, const LineInfo 
  tok_line_outok:
 	if (cc == -1 && co == -1) {
 		cc = tok->argc;
-		co = tok->wptr - tok->wstart;
+		co = (int)(tok->wptr - tok->wstart);
 	}
 	if (cursorc != NULL)
 		*cursorc = cc;

Modified: projects/fuse/lib/libthr/thread/thr_getschedparam.c
==============================================================================
--- projects/fuse/lib/libthr/thread/thr_getschedparam.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libthr/thread/thr_getschedparam.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -48,30 +48,21 @@ _pthread_getschedparam(pthread_t pthread
 	struct sched_param *param)
 {
 	struct pthread *curthread = _get_curthread();
-	int ret;
+	int ret = 0;
 
 	if (policy == NULL || param == NULL)
 		return (EINVAL);
 
-	if (pthread == curthread) {
-		/*
-		 * Avoid searching the thread list when it is the current
-		 * thread.
-		 */
+	/*
+	 * Avoid searching the thread list when it is the current
+	 * thread.
+	 */
+	if (pthread == curthread)
 		THR_LOCK(curthread);
-		*policy = curthread->attr.sched_policy;
-		param->sched_priority = curthread->attr.prio;
-		THR_UNLOCK(curthread);
-		ret = 0;
-	}
-	/* Find the thread in the list of active threads. */
-	else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0))
-	    == 0) {
-		THR_THREAD_LOCK(curthread, pthread);
-		*policy = pthread->attr.sched_policy;
-		param->sched_priority = pthread->attr.prio;
-		THR_THREAD_UNLOCK(curthread, pthread);
-		_thr_ref_delete(curthread, pthread);
-	}
+	else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0)))
+		return (ret);
+	*policy = pthread->attr.sched_policy;
+	param->sched_priority = pthread->attr.prio;
+	THR_THREAD_UNLOCK(curthread, pthread);
 	return (ret);
 }

Modified: projects/fuse/lib/libthr/thread/thr_info.c
==============================================================================
--- projects/fuse/lib/libthr/thread/thr_info.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libthr/thread/thr_info.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -51,16 +51,12 @@ _pthread_set_name_np(pthread_t thread, c
 		if (thr_set_name(thread->tid, name))
 			ret = errno;
 	} else {
-		if (_thr_ref_add(curthread, thread, 0) == 0) {
-			THR_THREAD_LOCK(curthread, thread);
+		if ((ret=_thr_find_thread(curthread, thread, 0)) == 0) {
 			if (thread->state != PS_DEAD) {
 				if (thr_set_name(thread->tid, name))
 					ret = errno;
 			}
 			THR_THREAD_UNLOCK(curthread, thread);
-			_thr_ref_delete(curthread, thread);
-		} else {
-			ret = ESRCH;
 		}
 	}
 #if 0

Modified: projects/fuse/lib/libthr/thread/thr_setprio.c
==============================================================================
--- projects/fuse/lib/libthr/thread/thr_setprio.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libthr/thread/thr_setprio.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -45,38 +45,22 @@ _pthread_setprio(pthread_t pthread, int 
 	int	ret;
 
 	param.sched_priority = prio;
-	if (pthread == curthread) {
+	if (pthread == curthread)
 		THR_LOCK(curthread);
-		if (curthread->attr.sched_policy == SCHED_OTHER ||
-		    curthread->attr.prio == prio) {
-			curthread->attr.prio = prio;
-			ret = 0;
-		} else {
-			ret = _thr_setscheduler(curthread->tid,
-			    curthread->attr.sched_policy, &param);
-			if (ret == -1)
-				ret = errno;
-			else 
-				curthread->attr.prio = prio;
-		}
-		THR_UNLOCK(curthread);
-	} else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0))
-		== 0) {
-		THR_THREAD_LOCK(curthread, pthread);
-		if (pthread->attr.sched_policy == SCHED_OTHER ||
-		    pthread->attr.prio == prio) {
+	else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0)))
+		return (ret);
+	if (pthread->attr.sched_policy == SCHED_OTHER ||
+	    pthread->attr.prio == prio) {
+		pthread->attr.prio = prio;
+		ret = 0;
+	} else {
+		ret = _thr_setscheduler(pthread->tid,
+			pthread->attr.sched_policy, &param);
+		if (ret == -1)
+			ret = errno;
+		else
 			pthread->attr.prio = prio;
-			ret = 0;
-		} else {
-			ret = _thr_setscheduler(pthread->tid,
-				curthread->attr.sched_policy, &param);
-			if (ret == -1)
-				ret = errno;
-			else
-				pthread->attr.prio = prio;
-		}
-		THR_THREAD_UNLOCK(curthread, pthread);
-		_thr_ref_delete(curthread, pthread);
 	}
+	THR_THREAD_UNLOCK(curthread, pthread);
 	return (ret);
 }

Modified: projects/fuse/lib/libthr/thread/thr_setschedparam.c
==============================================================================
--- projects/fuse/lib/libthr/thread/thr_setschedparam.c	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/lib/libthr/thread/thr_setschedparam.c	Sun Jul 22 14:47:15 2012	(r238694)
@@ -53,42 +53,25 @@ _pthread_setschedparam(pthread_t pthread
 	struct pthread	*curthread = _get_curthread();
 	int	ret;
 
-	if (pthread == curthread) {
+	if (pthread == curthread)
 		THR_LOCK(curthread);
-		if (curthread->attr.sched_policy == policy &&
-		    (policy == SCHED_OTHER ||
-		     curthread->attr.prio == param->sched_priority)) {
-			pthread->attr.prio = param->sched_priority;
-			THR_UNLOCK(curthread);
-			return (0);
-		}
-		ret = _thr_setscheduler(curthread->tid, policy, param);
-		if (ret == -1)
-			ret = errno;
-		else {
-			curthread->attr.sched_policy = policy;
-			curthread->attr.prio = param->sched_priority;
-		}
-		THR_UNLOCK(curthread);
-	} else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0))
-		== 0) {
-		THR_THREAD_LOCK(curthread, pthread);
-		if (pthread->attr.sched_policy == policy &&
-		    (policy == SCHED_OTHER ||
-		     pthread->attr.prio == param->sched_priority)) {
-			pthread->attr.prio = param->sched_priority;
-			THR_THREAD_UNLOCK(curthread, pthread);
-			return (0);
-		}
-		ret = _thr_setscheduler(pthread->tid, policy, param);
-		if (ret == -1)
-			ret = errno;
-		else {
-			pthread->attr.sched_policy = policy;
-			pthread->attr.prio = param->sched_priority;
-		}
+	else if ((ret = _thr_find_thread(curthread, pthread,
+		 /*include dead*/0)) != 0)
+		return (ret);
+	if (pthread->attr.sched_policy == policy &&
+	    (policy == SCHED_OTHER ||
+	     pthread->attr.prio == param->sched_priority)) {
+		pthread->attr.prio = param->sched_priority;
 		THR_THREAD_UNLOCK(curthread, pthread);
-		_thr_ref_delete(curthread, pthread);
+		return (0);
 	}
+	ret = _thr_setscheduler(pthread->tid, policy, param);
+	if (ret == -1)
+		ret = errno;
+	else {
+		pthread->attr.sched_policy = policy;
+		pthread->attr.prio = param->sched_priority;
+	}
+	THR_THREAD_UNLOCK(curthread, pthread);
 	return (ret);
 }

Modified: projects/fuse/sbin/hastd/hast.conf.5
==============================================================================
--- projects/fuse/sbin/hastd/hast.conf.5	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/sbin/hastd/hast.conf.5	Sun Jul 22 14:47:15 2012	(r238694)
@@ -63,7 +63,7 @@ checksum <algorithm>
 compression <algorithm>
 timeout <seconds>
 exec <path>
-metaflush "on" | "off"
+metaflush on | off
 pidfile <path>
 
 on <node> {
@@ -89,14 +89,14 @@ resource <name> {
 	local <path>
 	timeout <seconds>
 	exec <path>
-	metaflush "on" | "off"
+	metaflush on | off
 
 	on <node> {
 		# Resource-node section
 		name <name>
 		# Required
 		local <path>
-		metaflush "on" | "off"
+		metaflush on | off
 		# Required
 		remote <addr>
 		source <addr>
@@ -106,7 +106,7 @@ resource <name> {
 		name <name>
 		# Required
 		local <path>
-		metaflush "on" | "off"
+		metaflush on | off
 		# Required
 		remote <addr>
 		source <addr>

Modified: projects/fuse/sbin/ipfw/ipfw.8
==============================================================================
--- projects/fuse/sbin/ipfw/ipfw.8	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/sbin/ipfw/ipfw.8	Sun Jul 22 14:47:15 2012	(r238694)
@@ -1,7 +1,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 9, 2012
+.Dd July 16, 2012
 .Dt IPFW 8
 .Os
 .Sh NAME
@@ -2967,9 +2967,11 @@ This will let the firewall install dynam
 those connection which start with a regular SYN packet coming
 from the inside of our network.
 Dynamic rules are checked when encountering the first
-.Cm check-state
-or
+occurrence of a
+.Cm check-state ,
 .Cm keep-state
+or
+.Cm limit
 rule.
 A
 .Cm check-state

Modified: projects/fuse/share/dtrace/Makefile
==============================================================================
--- projects/fuse/share/dtrace/Makefile	Sun Jul 22 14:41:35 2012	(r238693)
+++ projects/fuse/share/dtrace/Makefile	Sun Jul 22 14:47:15 2012	(r238694)
@@ -12,9 +12,9 @@ SUBDIR= ${_toolkit}
 _toolkit=	toolkit
 .endif
 
-SCRIPTS=	nfsclienttime
+SCRIPTS=	nfsclienttime hotopen
 
-SCRIPTSDIR= ${SHAREDIR}/dtrace/
+SCRIPTSDIR= ${SHAREDIR}/dtrace
 
 NO_OBJ=
 

Copied: projects/fuse/share/dtrace/hotopen (from r238693, head/share/dtrace/hotopen)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/fuse/share/dtrace/hotopen	Sun Jul 22 14:47:15 2012	(r238694, copy of r238693, head/share/dtrace/hotopen)
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# Copyright (c) 2012 George V. Neville-Neil
+# All rights reserved.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207221447.q6MElGoV095846>