PERFORCE change 118666 for review

Robert Watson rwatson at FreeBSD.org
Mon Apr 23 14:44:41 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=118666

Change 118666 by rwatson at rwatson_zoo on 2007/04/23 14:44:18

	Integrate TrustedBSD audit3 branch from TrustedBSD base branch.

Affected files ...

.. //depot/projects/trustedbsd/audit3/ObsoleteFiles.inc#15 integrate
.. //depot/projects/trustedbsd/audit3/UPDATING#21 integrate
.. //depot/projects/trustedbsd/audit3/compat/opensolaris/misc/fsshare.c#2 integrate
.. //depot/projects/trustedbsd/audit3/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate
.. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate
.. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate
.. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 integrate
.. //depot/projects/trustedbsd/audit3/contrib/top/top.c#6 integrate
.. //depot/projects/trustedbsd/audit3/etc/rc.d/zfs#3 integrate
.. //depot/projects/trustedbsd/audit3/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate
.. //depot/projects/trustedbsd/audit3/lib/libc/net/rthdr.c#3 integrate
.. //depot/projects/trustedbsd/audit3/lib/libc/stdio/fputs.3#4 integrate
.. //depot/projects/trustedbsd/audit3/lib/libfetch/fetch.3#5 integrate
.. //depot/projects/trustedbsd/audit3/lib/libfetch/ftp.c#6 integrate
.. //depot/projects/trustedbsd/audit3/lib/libpthread/thread/thr_info.c#4 integrate
.. //depot/projects/trustedbsd/audit3/libexec/ftpd/ftpd.8#7 integrate
.. //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 integrate
.. //depot/projects/trustedbsd/audit3/sbin/fdisk_pc98/fdisk.8#5 integrate
.. //depot/projects/trustedbsd/audit3/sbin/fdisk_pc98/fdisk.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sbin/ping6/ping6.c#4 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man4/Makefile#19 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man4/sbsh.4#3 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man4/worm.4#3 delete
.. //depot/projects/trustedbsd/audit3/share/man/man8/nanobsd.8#3 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man9/pseudofs.9#3 integrate
.. //depot/projects/trustedbsd/audit3/share/misc/committers-ports.dot#4 integrate
.. //depot/projects/trustedbsd/audit3/share/misc/committers-src.dot#4 integrate
.. //depot/projects/trustedbsd/audit3/share/misc/organization.dot#2 integrate
.. //depot/projects/trustedbsd/audit3/share/mk/version_gen.awk#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/amd64/amd64/pmap.c#17 integrate
.. //depot/projects/trustedbsd/audit3/sys/amd64/include/vmparam.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/cam_periph.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/cam_periph.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/cam_xpt.c#14 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_da.c#14 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_pt.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_sa.c#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/linprocfs/linprocfs.c#14 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/kern/opensolaris_vfs.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/misc.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/sunddi.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/types.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/vnode.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/conf/files#31 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic79xx.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic79xx.h#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx_inline.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ath/if_ath.c#17 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/cxgb/cxgb_sge.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/cxgb/sys/uipc_mvec.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/led/led.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/led/led.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/sound/pci/envy24.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/sound/pci/envy24ht.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/fs/devfs/devfs_devs.c#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/fs/devfs/devfs_vnops.c#12 integrate
.. //depot/projects/trustedbsd/audit3/sys/fs/procfs/procfs_map.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/i386/i386/pmap.c#18 integrate
.. //depot/projects/trustedbsd/audit3/sys/i386/i386/sys_machdep.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/i386/include/vmparam.h#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/ia64/include/vmparam.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_linker.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#11 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_time.c#11 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_uuid.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/sched_ule.c#13 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/uipc_syscalls.c#16 integrate
.. //depot/projects/trustedbsd/audit3/sys/netgraph/ng_ppp.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_indata.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_indata.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_input.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_output.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_pcb.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_pcb.h#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_structs.h#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_uio.h#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_usrreq.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctputil.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/sctputil.h#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/tcp.h#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_input.c#18 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_output.c#11 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_syncache.c#16 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_var.h#13 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet6/in6_pcb.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/netinet6/route6.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsclient/nfs_lock.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs_syscalls.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/pci/if_vr.c#11 integrate
.. //depot/projects/trustedbsd/audit3/sys/pci/if_vrreg.h#9 integrate
.. //depot/projects/trustedbsd/audit3/sys/pci/intpm.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/powerpc/powerpc/nexus.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#36 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_audit.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_framework.h#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_inet.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_net.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_pipe.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_policy.h#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_process.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_socket.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_system.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_vfs.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_biba/mac_biba.c#12 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_bsdextended/mac_bsdextended.c#12 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_ifoff/mac_ifoff.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_lomac/mac_lomac.c#11 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_mls/mac_mls.c#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_partition/mac_partition.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_portacl/mac_portacl.c#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_stub/mac_stub.c#9 integrate
.. //depot/projects/trustedbsd/audit3/sys/security/mac_test/mac_test.c#9 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/include/vmparam.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/sun4v/include/vmparam.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/sys/mount.h#15 integrate
.. //depot/projects/trustedbsd/audit3/sys/sys/priv.h#5 integrate
.. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/Makefile#1 branch
.. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch
.. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch
.. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch
.. //depot/projects/trustedbsd/audit3/tools/regression/sockets/sendfile/sendfile.c#3 integrate
.. //depot/projects/trustedbsd/audit3/tools/regression/usr.bin/sed/regress.sh#4 integrate
.. //depot/projects/trustedbsd/audit3/tools/sched/schedgraph.py#5 integrate
.. //depot/projects/trustedbsd/audit3/tools/tools/nanobsd/nanobsd.sh#9 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/make/GNode.h#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/make/main.c#9 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/make/make.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/make/targ.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/sed/extern.h#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/sed/main.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/sed/process.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/sed/sed.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/daemon/daemon.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.8#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.h#3 integrate

Differences ...

==== //depot/projects/trustedbsd/audit3/ObsoleteFiles.inc#15 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $
 #
 # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
 # directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20070421: worm.4 removed
+OLD_FILES+=usr/share/man/man4/worm.4.gz
 # 20070417: trunk(4) renamed to lagg(4)
 OLD_FILES+=usr/include/net/if_trunk.h
 # 20070409: uuidgen moved to /bin/

==== //depot/projects/trustedbsd/audit3/UPDATING#21 (text+ko) ====

@@ -21,17 +21,6 @@
 	developers choose to disable these features on build machines
 	to maximize performance.
 
-20070418:
-	A new acct(5) format is imminent.  If you want to maintain access
-	to your accounting files, use the new lastcomm(1) -X functionality to
-	export them into text format, and keep around a copy of the lastcomm
-	binary.  An updated lastcomm(1) program will allow you to import
-	the text files into the new acct(5) format.  The change will also
-	invalidate the condensed summary files /var/account/savacct and
-	/var/account/usracct.  If your process accounting system relies
-	on them, you will need to save their contents in a readable format
-	before the switch.
-
 20070417:
 	The new trunk(4) driver has been renamed to lagg(4) as it better
 	reflects its purpose. ifconfig will need to be recompiled.
@@ -778,4 +767,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.487 2007/04/18 17:34:59 dds Exp $
+$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $

==== //depot/projects/trustedbsd/audit3/compat/opensolaris/misc/fsshare.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $");
+__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $");
 
 #include <sys/param.h>
 #include <stdio.h>
@@ -99,21 +99,30 @@
 /*
  * Function translate options to a format acceptable by exports(5), eg.
  *
- *	-ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0
+ *	-ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54
  *
  * Accepted input formats:
  *
- *	ro,network=192.168.0.0,mask=255.255.255.0,maproot=0
- *	ro network=192.168.0.0 mask=255.255.255.0 maproot=0
- *	-ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0
- *	-ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0
+ *	ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org
+ *	ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org
+ *	-ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org
+ *	-ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org
+ *
+ * Recognized keywords:
+ *
+ *	ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet
+ *
  */
+static const char *known_opts[] = { "ro", "maproot", "mapall", "mask",
+    "network", "alldirs", "public", "webnfs", "index", "quiet", NULL };
 static char *
 translate_opts(const char *shareopts)
 {
 	static char newopts[OPTSSIZE];
-	char oldopts[OPTSSIZE], opt[64];
+	char oldopts[OPTSSIZE];
 	char *o, *s = NULL;
+	unsigned int i;
+	size_t len;
 
 	strlcpy(oldopts, shareopts, sizeof(oldopts));
 	newopts[0] = '\0';
@@ -121,8 +130,16 @@
 	while ((o = strsep(&s, "-, ")) != NULL) {
 		if (o[0] == '\0')
 			continue;
-		snprintf(opt, sizeof(opt), "-%s ", o);
-		strlcat(newopts, opt, sizeof(newopts));
+		for (i = 0; known_opts[i] != NULL; i++) {
+			len = strlen(known_opts[i]);
+			if (strncmp(known_opts[i], o, len) == 0 &&
+			    (o[len] == '\0' || o[len] == '=')) {
+				strlcat(newopts, "-", sizeof(newopts));
+				break;
+			}
+		}
+		strlcat(newopts, o, sizeof(newopts));
+		strlcat(newopts, " ", sizeof(newopts));
 	}
 	return (newopts);
 }

==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ====

@@ -932,11 +932,11 @@
 
 	if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6)
 		(void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)",
-		    zio_checksum_table[doi.doi_checksum].ci_name);
+		zio_checksum_table[doi.doi_checksum].ci_name);
 
 	if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6)
 		(void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)",
-		    zio_compress_table[doi.doi_compress].ci_name);
+		zio_compress_table[doi.doi_compress].ci_name);
 
 	(void) printf("%10lld  %3u  %5s  %5s  %5s  %5s  %s%s\n",
 	    (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize,
@@ -1441,7 +1441,7 @@
 		    (u_longlong_t)zb->zb_objset,
 		    (u_longlong_t)zb->zb_object,
 		    (u_longlong_t)blkid2offset(bc->bc_dnode,
-		    zb->zb_level, zb->zb_blkid),
+			zb->zb_level, zb->zb_blkid),
 		    blkbuf);
 	}
 
@@ -1951,8 +1951,8 @@
 			spa_close(spa, (void *)zdb_read_block);
 		error = spa_open(spa_name, spap, (void *)zdb_read_block);
 		if (error)
-			fatal("Failed to open pool '%s': errno = %d\n",
-			    spa_name, error);
+			fatal("Failed to open pool '%s': %s",
+			    spa_name, strerror(error));
 		spa = *spap;
 	}
 
@@ -2156,7 +2156,7 @@
 	}
 
 	if (error)
-		fatal("can't open %s: error %d", argv[0], error);
+		fatal("can't open %s: %s", argv[0], strerror(error));
 
 	argv++;
 	if (--argc > 0) {

==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ====

@@ -339,22 +339,15 @@
 changelist_free(prop_changelist_t *clp)
 {
 	prop_changenode_t *cn;
-	uu_list_walk_t *walk;
+	void *cookie;
 
 	if (clp->cl_list) {
-		verify((walk = uu_list_walk_start(clp->cl_list,
-		    UU_WALK_ROBUST)) != NULL);
-
-		while ((cn = uu_list_walk_next(walk)) != NULL) {
-
-			uu_list_remove(clp->cl_list, cn);
-
+		cookie = NULL;
+		while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) {
 			zfs_close(cn->cn_handle);
 			free(cn);
 		}
 
-		uu_list_walk_end(walk);
-
 		uu_list_destroy(clp->cl_list);
 	}
 	if (clp->cl_pool)
@@ -418,7 +411,7 @@
 		} else {
 			ASSERT(!clp->cl_alldependents);
 			verify(uu_list_insert_before(clp->cl_list,
-				uu_list_first(clp->cl_list), cn) == 0);
+			    uu_list_first(clp->cl_list), cn) == 0);
 		}
 
 		if (!clp->cl_alldependents)

==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ====

@@ -74,22 +74,16 @@
 namespace_clear(libzfs_handle_t *hdl)
 {
 	if (hdl->libzfs_ns_avl) {
-		uu_avl_walk_t *walk;
 		config_node_t *cn;
+		void *cookie = NULL;
 
-		if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl,
-		    UU_WALK_ROBUST)) == NULL)
-			return;
-
-		while ((cn = uu_avl_walk_next(walk)) != NULL) {
-			uu_avl_remove(hdl->libzfs_ns_avl, cn);
+		while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl,
+		    &cookie)) != NULL) {
 			nvlist_free(cn->cn_config);
 			free(cn->cn_name);
 			free(cn);
 		}
 
-		uu_avl_walk_end(walk);
-
 		uu_avl_destroy(hdl->libzfs_ns_avl);
 		hdl->libzfs_ns_avl = NULL;
 	}
@@ -110,7 +104,7 @@
 	config_node_t *cn;
 	nvpair_t *elem;
 	zfs_cmd_t zc = { 0 };
-	uu_avl_walk_t *walk;
+	void *cookie;
 
 	if (hdl->libzfs_ns_gen == 0) {
 		/*
@@ -172,21 +166,13 @@
 	/*
 	 * Clear out any existing configuration information.
 	 */
-	if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl,
-	    UU_WALK_ROBUST)) == NULL) {
-		nvlist_free(config);
-		return (no_memory(hdl));
-	}
-
-	while ((cn = uu_avl_walk_next(walk)) != NULL) {
-		uu_avl_remove(hdl->libzfs_ns_avl, cn);
+	cookie = NULL;
+	while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) {
 		nvlist_free(cn->cn_config);
 		free(cn->cn_name);
 		free(cn);
 	}
 
-	uu_avl_walk_end(walk);
-
 	elem = NULL;
 	while ((elem = nvlist_next_nvpair(config, elem)) != NULL) {
 		nvlist_t *child;
@@ -222,7 +208,7 @@
 }
 
 /*
- * Retrive the configuration for the given pool.  The configuration is a nvlist
+ * Retrieve the configuration for the given pool.  The configuration is a nvlist
  * describing the vdevs, as well as the statistics associated with each one.
  */
 nvlist_t *

==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 (text+ko) ====

@@ -220,7 +220,7 @@
 	    &state) == 0 && state == POOL_STATE_SPARE &&
 	    nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) {
 		if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL)
-		    return (-1);
+			return (-1);
 
 		if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) {
 			free(ne);
@@ -748,7 +748,6 @@
 zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv)
 {
 	int i;
-	DIR *dirp;
 	char path[MAXPATHLEN];
 	nvlist_t *ret = NULL, *config;
 	int fd;
@@ -824,7 +823,6 @@
 		free(ne);
 	}
 
-
 	return (ret);
 }
 

==== //depot/projects/trustedbsd/audit3/contrib/top/top.c#6 (text+ko) ====

@@ -13,7 +13,7 @@
  *  Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory
  *  Copyright (c) 1996, William LeFebvre, Group sys Consulting
  *
- * $FreeBSD: src/contrib/top/top.c,v 1.21 2007/04/17 03:12:39 rafan Exp $
+ * $FreeBSD: src/contrib/top/top.c,v 1.22 2007/04/19 14:24:54 rafan Exp $
  */
 
 /*
@@ -410,7 +410,7 @@
 	      default:
 		fprintf(stderr,
 "Top version %s\n"
-"Usage: %s [-bCHIinqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n"
+"Usage: %s [-abCHIijnqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n"
 "       [-U username] [number]\n",
 			version_string(), myname);
 		exit(1);

==== //depot/projects/trustedbsd/audit3/etc/rc.d/zfs#3 (text+ko) ====

@@ -1,11 +1,10 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/zfs,v 1.4 2007/04/15 18:07:14 pjd Exp $
+# $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $
 #
 
 # PROVIDE: zfs
 # REQUIRE: mountcritlocal
-# KEYWORD: nojail
 
 . /etc/rc.subr
 
@@ -15,7 +14,14 @@
 stop_cmd="zfs_stop"
 required_modules="zfs"
 
-zfs_start()
+zfs_start_jail()
+{
+	if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then
+		zfs mount -a
+	fi
+}
+
+zfs_start_main()
 {
 	zfs volinit
 	zfs mount -a
@@ -34,7 +40,23 @@
 	done
 }
 
-zfs_stop()
+zfs_start()
+{
+	if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then
+		zfs_start_jail
+	else
+		zfs_start_main
+	fi
+}
+
+zfs_stop_jail()
+{
+	if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then
+		zfs unmount -a
+	fi
+}
+
+zfs_stop_main()
 {
 	# Disable swap on ZVOLs with property org.freebsd:swap=on.
 	zfs list -H -o org.freebsd:swap,name -t volume | \
@@ -50,5 +72,14 @@
 	zfs volfini
 }
 
+zfs_stop()
+{
+	if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then
+		zfs_stop_jail
+	else
+		zfs_stop_main
+	fi
+}
+
 load_rc_config $name
 run_rc_command "$1"

==== //depot/projects/trustedbsd/audit3/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.1 2007/03/03 07:37:36 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.2 2007/04/20 15:32:13 kientzle Exp $");
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -72,6 +72,7 @@
 	id_t	 id;
 };
 
+static const size_t cache_size = 127;
 static unsigned int	hash(const char *);
 static gid_t	lookup_gid(void *, const char *uname, gid_t);
 static uid_t	lookup_uid(void *, const char *uname, uid_t);
@@ -99,10 +100,10 @@
 int
 archive_write_disk_set_standard_lookup(struct archive *a)
 {
-	struct bucket *ucache = malloc(sizeof(struct bucket[127]));
-	struct bucket *gcache = malloc(sizeof(struct bucket[127]));
-	memset(ucache, 0, sizeof(struct bucket[127]));
-	memset(gcache, 0, sizeof(struct bucket[127]));
+	struct bucket *ucache = malloc(sizeof(struct bucket[cache_size]));
+	struct bucket *gcache = malloc(sizeof(struct bucket[cache_size]));
+	memset(ucache, 0, sizeof(struct bucket[cache_size]));
+	memset(gcache, 0, sizeof(struct bucket[cache_size]));
 	archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup);
 	archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup);
 	return (ARCHIVE_OK);
@@ -113,11 +114,8 @@
 {
 	int h;
 	struct bucket *b;
-	int cache_size;
 	struct bucket *gcache = (struct bucket *)private_data;
 
-	cache_size = 127;
-
 	/* If no gname, just use the gid provided. */
 	if (gname == NULL || *gname == '\0')
 		return (gid);
@@ -153,11 +151,8 @@
 {
 	int h;
 	struct bucket *b;
-	int cache_size;
 	struct bucket *ucache = (struct bucket *)private_data;
 
-	cache_size = 127;
-
 	/* If no uname, just use the uid provided. */
 	if (uname == NULL || *uname == '\0')
 		return (uid);
@@ -191,7 +186,12 @@
 static void
 cleanup(void *private)
 {
-	free(private);
+	size_t i;
+	struct bucket *cache = (struct bucket *)private;
+
+	for (i = 0; i < cache_size; i++)
+		free(cache[i].name);
+	free(cache);
 }
 
 

==== //depot/projects/trustedbsd/audit3/lib/libc/net/rthdr.c#3 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.9 2007/04/19 15:48:16 mtm Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -292,7 +292,9 @@
 {
 	switch (type) {
 	case IPV6_RTHDR_TYPE_0:
-		return (((segments * 2) + 1) << 3);
+		if ((segments >= 0) && (segments <= 127))
+			return (((segments * 2) + 1) << 3);
+		/* FALLTHROUGH */
 	default:
 		return (0);	/* type not suppported */
 	}
@@ -309,6 +311,9 @@
 		/* length validation */
 		if (bp_len < inet6_rth_space(IPV6_RTHDR_TYPE_0, segments))
 			return (NULL);
+		/* segment validation */
+		if ((segments < 0) || (segments > 127))
+			return (NULL);
 
 		memset(bp, 0, bp_len);
 		rth0 = (struct ip6_rthdr0 *)rth;
@@ -334,6 +339,9 @@
 	switch (rth->ip6r_type) {
 	case IPV6_RTHDR_TYPE_0:
 		rth0 = (struct ip6_rthdr0 *)rth;
+		/* Don't exceed the number of stated segments */
+		if (rth0->ip6r0_segleft == (rth0->ip6r0_len / 2))
+			return (-1);
 		nextaddr = (struct in6_addr *)(rth0 + 1) + rth0->ip6r0_segleft;
 		*nextaddr = *addr;
 		rth0->ip6r0_segleft++;

==== //depot/projects/trustedbsd/audit3/lib/libc/stdio/fputs.3#4 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)fputs.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.13 2007/04/19 09:38:31 phk Exp $
+.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.14 2007/04/19 14:01:04 phk Exp $
 .\"
 .Dd June 4, 1993
 .Dt FPUTS 3
@@ -70,7 +70,7 @@
 .Fn fputs
 and
 .Fn puts
-returns a nonnegative integer on success and
+return a nonnegative integer on success and
 .Dv EOF
 on error.
 .Sh ERRORS

==== //depot/projects/trustedbsd/audit3/lib/libfetch/fetch.3#5 (text+ko) ====

@@ -23,9 +23,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.61 2005/11/30 04:08:45 tmclaugh Exp $
+.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.62 2007/04/22 22:33:29 njl Exp $
 .\"
-.Dd July 1, 1998
+.Dd April 22, 2007
 .Dt FETCH 3
 .Os
 .Sh NAME
@@ -334,6 +334,16 @@
 .Nm fetch
 library will attempt an anonymous login, with user name "anonymous"
 and password "anonymous@<hostname>".
+.Pp
+By default,
+.Nm fetch
+changes directories one at a time for the best compatibility with a wide
+variety of servers.
+If it is compiled with the
+.Ql FTP_COMBINE_CWDS
+flag, it will first try a single change directory command for the entire
+path and fall back to the default scheme if an error occurred.
+This can save latency when used with a slow network link.
 .Sh HTTP SCHEME
 The
 .Fn fetchXGetHTTP ,

==== //depot/projects/trustedbsd/audit3/lib/libfetch/ftp.c#6 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.95 2006/06/13 10:21:03 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $");
 
 /*
  * Portions of this code were taken from or based on ftpio.c:
@@ -267,6 +267,7 @@
 	char pwd[PATH_MAX];
 	int e, i, len;
 
+	/* If no slashes in name, no need to change dirs. */
 	if ((end = strrchr(file, '/')) == NULL)
 		return (0);
 	if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY ||
@@ -276,7 +277,8 @@
 	}
 	for (;;) {
 		len = strlen(pwd);
-		/* look for a common prefix */
+
+		/* Look for a common prefix between PWD and dir to fetch. */
 		for (i = 0; i <= len && i <= end - file; ++i)
 			if (pwd[i] != file[i])
 				break;
@@ -284,6 +286,7 @@
 		DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i));
 		DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i));
 #endif
+		/* Keep going up a dir until we have a matching prefix. */
 		if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/'))
 			break;
 		if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK ||
@@ -293,6 +296,23 @@
 			return (-1);
 		}
 	}
+
+#ifdef FTP_COMBINE_CWDS
+	/* Skip leading slashes, even "////". */
+	for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i)
+		/* nothing */ ;
+
+	/* If there is no trailing dir, we're already there. */
+	if (beg >= end)
+		return (0);
+
+	/* Change to the directory all in one chunk (e.g., foo/bar/baz). */
+	e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg);
+	if (e == FTP_FILE_ACTION_OK)
+		return (0);
+#endif /* FTP_COMBINE_CWDS */
+
+	/* That didn't work so go back to legacy behavior (multiple CWDs). */
 	for (beg = file + i; beg < end; beg = file + i + 1) {
 		while (*beg == '/')
 			++beg, ++i;
@@ -966,6 +986,8 @@
 	if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN)
 		goto fouch;
 
+	/* TODO: Request extended features supported, if any (RFC 3659). */
+
 	/* done */
 	return (conn);
 

==== //depot/projects/trustedbsd/audit3/lib/libpthread/thread/thr_info.c#4 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.29 2007/01/12 07:26:18 imp Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.30 2007/04/23 03:36:14 deischen Exp $
  */
 #include <stdio.h>
 #include <stdlib.h>
@@ -214,12 +214,31 @@
 void
 _pthread_set_name_np(pthread_t thread, char *name)
 {
-	/* Check if the caller has specified a valid thread: */
-	if (thread != NULL && thread->magic == THR_MAGIC) {
-		if (thread->name != NULL) {
+	struct pthread *curthread = _get_curthread();
+	char *new_name;
+	char *prev_name;
+	int ret;
+
+	new_name = strdup(name);
+	/* Add a reference to the target thread. */
+	if (_thr_ref_add(curthread, thread, 0) != 0) {
+		free(new_name);
+		ret = ESRCH;
+	}
+	else {
+		THR_THREAD_LOCK(curthread, thread);
+		prev_name = thread->name;
+		thread->name = new_name;
+		THR_THREAD_UNLOCK(curthread, thread);
+		_thr_ref_delete(curthread, thread);
+		if (prev_name != NULL) {
 			/* Free space for previous name. */
-			free(thread->name);
+			free(prev_name);
 		}
-		thread->name = strdup(name);
+		ret = 0;
 	}
+#if 0
+	/* XXX - Should return error code. */
+	return (ret);
+#endif
 }

==== //depot/projects/trustedbsd/audit3/libexec/ftpd/ftpd.8#7 (text+ko) ====

@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
-.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.72 2007/04/18 22:43:39 yar Exp $
+.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.74 2007/04/20 09:08:20 trhodes Exp $
 .\"
-.Dd January 21, 2006
+.Dd April 20, 2007
 .Dt FTPD 8
 .Os
 .Sh NAME
@@ -79,20 +79,19 @@
 .Dv AF_INET6
 socket.
 .It Fl 8
-The server is running in transparent UTF-8 mode.
-That is, it just encourages RFC\ 2640 compliant clients to send
-paths encoded in UTF-8 in their commands.
-In particular, the names of files uploaded by such clients will
-have UTF-8 encoding.
-The clients will also assume that server replies and existing file
-names have UTF-8 encoding, too.
-The names of files preloaded to the server should meet this expectation
-for the clients to present the correct file names to their users.
-Own messages of
+Enable transparent UTF-8 mode.
+RFC\ 2640 compliant clients will be told that the character encoding
+used by the server is UTF-8, which is the only effect of the option.
+.Pp
+This option does not enable any encoding conversion for server file names;
+it implies instead that the names of files on the server are encoded
+in UTF-8.
+As for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant
+client to convert their names from the client's local encoding to UTF-8.
+FTP command names and own
 .Nm
-are always encoded in ASCII, which in fact is a subset of UTF-8.
-.Pp
-Note that this option does not make the server do any encoding conversion.
+messages are always encoded in ASCII, which is a subset of UTF-8.
+Hence no need for server-side conversion at all.
 .It Fl A
 Allow only anonymous ftp access.
 .It Fl a
@@ -356,16 +355,15 @@
 and not have a null password.
 In this case a password must be provided by the client before any
 file operations may be performed.
-If the user has an S/Key key, the response from a successful USER
-command will include an S/Key challenge.
+If the user has an OPIE key, the response from a successful USER
+command will include an OPIE challenge.
 The client may choose to respond with a PASS command giving either
-a standard password or an S/Key one-time password.
+a standard password or an OPIE one-time password.
 The server will automatically determine which type of
 password it has been given and attempt to authenticate accordingly.
 See
-.Xr key 1
-for more information on S/Key authentication.
-S/Key is a Trademark of Bellcore.
+.Xr opie 4
+for more information on OPIE authentication.
 .It
 The login name must not appear in the file
 .Pa /etc/ftpusers .
@@ -559,9 +557,9 @@
 .El
 .Sh SEE ALSO
 .Xr ftp 1 ,
-.Xr key 1 ,
 .Xr umask 2 ,
 .Xr getusershell 3 ,
+.Xr opie 4 ,
 .Xr ftpchroot 5 ,
 .Xr login.conf 5 ,
 .Xr inetd 8 ,

==== //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 (text+ko) ====

@@ -30,7 +30,7 @@
 
   <corpauthor>The &os; Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1018 2007/04/17 07:01:45 brueffer Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -438,14 +438,19 @@
       statistics via a binary structure stream.</para>
 
     <para>The sysctl variable <varname>hw.pci.do_powerstate</varname>
-      has been changed from a boolean to a range.
+      has been split into two sysctl variables
+      <varname>hw.pci.do_powerstate_nodriver</varname>
+      and <varname>hw.pci.do_powerstate_resume</varname>.
+      Also, these variables have been changed from a boolean to a range.
       <literal>0</literal> means no power management,
       <literal>1</literal> means conservative power management which
       any device class that has caused problems is added to the watch list,
       <literal>2</literal> means aggressive power management where
       any device class that is not fundamental to the system is added to the list,
       and <literal>3</literal> means power them all down unconditionally.
-      The default is <literal>1</literal>.</para>
+      The default values are <literal>0</literal> for
+      <varname>hw.pci.do_powerstate_nodriver</varname> and
+      <literal>1</literal> for <varname>hw.pci.do_powerstate_resume</varname>.</para>
 
     <para>[&arch.ia64;] The <filename>GENERIC</filename> kernel now enables
       SMP support by default.</para>
@@ -499,6 +504,9 @@
       <para>[&arch.pc98;] A bootable CDROM loader has been implemented
 	for the pc98 platform. &merged;</para>
 
+      <para>[&arch.pc98;] The <application>IPLware</application> support
+	in boot0.5 has been enhanced to support version 3.33.</para>
+
       <para>[&arch.i386;] A bug in the i386 boot loader, which could
 	cause file system corruption if
 	a <filename>nextboot.conf</filename> file was used and landed
@@ -978,6 +986,10 @@
         IPv6 support, it should be used instead.  Please note that some rules might need
         to be adjusted.</para>
 
+      <para>The &man.lagg.4; driver, ported from OpenBSD and NetBSD,
+	has been added to support a variety of protocols and algorithms
+	for link aggregation, failover, and fault tolerance.</para>
+
       <para>The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE.</para>
 
       <para>A new &man.ng.deflate.4; Netgraph node type has been
@@ -1103,10 +1115,6 @@
 	devices will marked <literal>up</literal> upon creation.  &merged;
 	</para>
 
-      <para>The &man.lagg.4; driver, ported from OpenBSD and NetBSD,
-	has been added to support a variety of protocols and algorithms
-	for link aggregation, failover, and fault tolerance.</para>
-
       <para>Support for &man.kqueue.2; operations has been added to
 	the &man.tun.4; driver. &merged;</para>
 
@@ -1133,6 +1141,10 @@
       <para>The &man.arcmsr.4; driver has been updated to version
 	1.20.00.13. &merged;</para>
 
+      <para>The &man.ahc.4; driver is now MPSAFE.</para>
+
+      <para>The &man.ahd.4; driver is now MPSAFE.</para>
+
       <para>The &man.ata.4; driver now supports a workaround
 	for some controllers whose DMA does not work properly
 	in 48bit mode.  For affected controllers,
@@ -1158,6 +1170,8 @@
       <para>The &man.ataraid.4; driver now supports
 	JMicron ATA RAID metadata.  &merged;</para>

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list