PERFORCE change 130822 for review

John Birrell jb at FreeBSD.org
Thu Dec 13 15:35:03 PST 2007


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

Change 130822 by jb at jb_freebsd1 on 2007/12/13 23:34:55

	Update to match the code in the opensolaris project which matches
	what is in current. This has the effect of undoing changes that came
	in with the latest OpenSolaris import but which haven't been merged
	into current yet.

Affected files ...

.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.d#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/sgs/include/_libelf.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/sgs/messages/sgs.ident#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zdb/zdb.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zdb/zdb_il.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_iter.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_iter.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_main.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zpool/zpool_iter.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zpool/zpool_main.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zpool/zpool_util.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zpool/zpool_util.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zpool/zpool_vdev.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/cmd/ztest/ztest.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/compat/assert.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/compat/fcntl.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/compat/stdio.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/compat/thread.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/compat/unistd.h#2 delete
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libctf/common/ctf_lib.c#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libdtrace/common/dt_cc.c#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libdtrace/common/dt_parser.h#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libdtrace/common/dt_regset.c#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libdtrace/common/dtrace.h#3 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libuutil/common/libuutil.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libuutil/common/libuutil_common.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libuutil/common/uu_misc.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libuutil/common/uu_pname.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_graph.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_status.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzfs/common/libzfs_util.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzpool/common/kernel.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzpool/common/taskq.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/lib/libzpool/common/util.c#2 edit
.. //depot/projects/dtrace6/src/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c#3 edit
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/bitmap.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/kmem.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/mman.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/objfs.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/processor.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/synch.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/compat/sys/vmem.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/uts/common/sys/cpuvar.h#3 edit
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/uts/common/sys/vfs.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/uts/intel/sys/machelf.h#2 delete
.. //depot/projects/dtrace6/src/sys/contrib/opensolaris/uts/sparc/sys/machelf.h#2 delete

Differences ...

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c#3 (text+ko) ====

@@ -20,20 +20,21 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
-#include <sys/mman.h>
+#include <stdio.h>
+#include <sys/syscall.h>
 
 /*ARGSUSED*/
 int
 main(int argc, char **argv)
 {
 	for (;;) {
-		(void) mmap(NULL, 1, 2, 3, -1, 0x12345678);
+		(void) syscall(SYS_mmap, NULL, 1, 2, 3, -1, 0x12345678);
 	}
 
 	return (0);

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.d#3 (text+ko) ====

@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -42,5 +42,5 @@
 tick-1s
 /i++ == 3/
 {
-	exit(0);
+	exit(1);
 }

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/sgs/messages/sgs.ident#3 (text+ko) ====

@@ -57,5 +57,6 @@
 MSG_ID_ELFEDIT_EHDR	27	SUNW_OST_SGS		/*	ehdr: */
 MSG_ID_ELFEDIT_PHDR	27	SUNW_OST_SGS		/*	phdr: */
 MSG_ID_ELFEDIT_SHDR	27	SUNW_OST_SGS		/*	shdr: */
+MSG_ID_ELFEDIT_STR	27	SUNW_OST_SGS		/*	str: */
 MSG_ID_ELFEDIT_SYM	27	SUNW_OST_SGS		/*	sym: */
 MSG_ID_ELFEDIT_SYMINFO	27	SUNW_OST_SGS		/*	syminfo: */

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zdb/zdb.c#2 (text) ====

@@ -51,9 +51,6 @@
 #include <sys/dmu_traverse.h>
 #include <sys/zio_checksum.h>
 #include <sys/zio_compress.h>
-#undef ZFS_MAXNAMELEN
-#undef verify
-#include <libzfs.h>
 
 const char cmdname[] = "zdb";
 uint8_t dump_opt[256];
@@ -65,7 +62,6 @@
 int zopt_objects = 0;
 int zdb_advance = ADVANCE_PRE;
 zbookmark_t zdb_noread = { 0, 0, ZB_NO_LEVEL, 0 };
-libzfs_handle_t *g_zfs;
 
 /*
  * These libumem hooks provide a reasonable set of defaults for the allocator's
@@ -87,13 +83,12 @@
 usage(void)
 {
 	(void) fprintf(stderr,
-	    "Usage: %s [-udibcsvLUe] [-O order] [-B os:obj:level:blkid] "
+	    "Usage: %s [-udibcsvLU] [-O order] [-B os:obj:level:blkid] "
 	    "dataset [object...]\n"
 	    "       %s -C [pool]\n"
 	    "       %s -l dev\n"
-	    "       %s -R vdev:offset:size:flags\n"
-	    "       %s [-p path_to_vdev_dir]\n",
-	    cmdname, cmdname, cmdname, cmdname, cmdname);
+	    "       %s -R vdev:offset:size:flags\n",
+	    cmdname, cmdname, cmdname, cmdname);
 
 	(void) fprintf(stderr, "	-u uberblock\n");
 	(void) fprintf(stderr, "	-d datasets\n");
@@ -112,8 +107,6 @@
 	    "simulate bad block\n");
 	(void) fprintf(stderr, "        -R read and display block from a"
 	    "device\n");
-	(void) fprintf(stderr, "        -e Pool is exported/destroyed\n");
-	(void) fprintf(stderr, "	-p <Path to vdev dir> (use with -e)\n");
 	(void) fprintf(stderr, "Specify an option more than once (e.g. -bb) "
 	    "to make only that option verbose\n");
 	(void) fprintf(stderr, "Default is to dump everything non-verbosely\n");
@@ -374,45 +367,7 @@
 	zap_cursor_fini(&zc);
 }
 
-/*ARGSUSED*/
 static void
-dump_zpldir(objset_t *os, uint64_t object, void *data, size_t size)
-{
-	zap_cursor_t zc;
-	zap_attribute_t attr;
-	const char *typenames[] = {
-		/* 0 */ "not specified",
-		/* 1 */ "FIFO",
-		/* 2 */ "Character Device",
-		/* 3 */ "3 (invalid)",
-		/* 4 */ "Directory",
-		/* 5 */ "5 (invalid)",
-		/* 6 */ "Block Device",
-		/* 7 */ "7 (invalid)",
-		/* 8 */ "Regular File",
-		/* 9 */ "9 (invalid)",
-		/* 10 */ "Symbolic Link",
-		/* 11 */ "11 (invalid)",
-		/* 12 */ "Socket",
-		/* 13 */ "Door",
-		/* 14 */ "Event Port",
-		/* 15 */ "15 (invalid)",
-	};
-
-	dump_zap_stats(os, object);
-	(void) printf("\n");
-
-	for (zap_cursor_init(&zc, os, object);
-	    zap_cursor_retrieve(&zc, &attr) == 0;
-	    zap_cursor_advance(&zc)) {
-		(void) printf("\t\t%s = %lld (type: %s)\n",
-		    attr.za_name, ZFS_DIRENT_OBJ(attr.za_first_integer),
-		    typenames[ZFS_DIRENT_TYPE(attr.za_first_integer)]);
-	}
-	zap_cursor_fini(&zc);
-}
-
-static void
 dump_spacemap(objset_t *os, space_map_obj_t *smo, space_map_t *sm)
 {
 	uint64_t alloc, offset, entry;
@@ -720,7 +675,7 @@
 	if (dd == NULL)
 		return;
 
-	ASSERT3U(size, >=, sizeof (dsl_dir_phys_t));
+	ASSERT(size == sizeof (*dd));
 
 	crtime = dd->dd_creation_time;
 	nicenum(dd->dd_used_bytes, used);
@@ -734,8 +689,8 @@
 	    (u_longlong_t)dd->dd_head_dataset_obj);
 	(void) printf("\t\tparent_dir_obj = %llu\n",
 	    (u_longlong_t)dd->dd_parent_obj);
-	(void) printf("\t\torigin_obj = %llu\n",
-	    (u_longlong_t)dd->dd_origin_obj);
+	(void) printf("\t\tclone_parent_obj = %llu\n",
+	    (u_longlong_t)dd->dd_clone_parent_obj);
 	(void) printf("\t\tchild_dir_zapobj = %llu\n",
 	    (u_longlong_t)dd->dd_child_dir_zapobj);
 	(void) printf("\t\tused_bytes = %s\n", used);
@@ -745,8 +700,6 @@
 	(void) printf("\t\treserved = %s\n", resv);
 	(void) printf("\t\tprops_zapobj = %llu\n",
 	    (u_longlong_t)dd->dd_props_zapobj);
-	(void) printf("\t\tdeleg_zapobj = %llu\n",
-	    (u_longlong_t)dd->dd_deleg_zapobj);
 }
 
 /*ARGSUSED*/
@@ -812,11 +765,9 @@
 	if (dump_opt['d'] < 3)
 		return;
 
-	mutex_init(&bpl.bpl_lock, NULL, MUTEX_DEFAULT, NULL);
 	VERIFY(0 == bplist_open(&bpl, mos, object));
 	if (bplist_empty(&bpl)) {
 		bplist_close(&bpl);
-		mutex_destroy(&bpl.bpl_lock);
 		return;
 	}
 
@@ -834,7 +785,6 @@
 
 	if (dump_opt['d'] < 5) {
 		bplist_close(&bpl);
-		mutex_destroy(&bpl.bpl_lock);
 		return;
 	}
 
@@ -850,7 +800,6 @@
 	}
 
 	bplist_close(&bpl);
-	mutex_destroy(&bpl.bpl_lock);
 }
 
 /*ARGSUSED*/
@@ -925,9 +874,9 @@
 	dump_zap,		/* DSL props			*/
 	dump_dsl_dataset,	/* DSL dataset			*/
 	dump_znode,		/* ZFS znode			*/
-	dump_acl,		/* ZFS V0 ACL			*/
+	dump_acl,		/* ZFS ACL			*/
 	dump_uint8,		/* ZFS plain file		*/
-	dump_zpldir,		/* ZFS directory		*/
+	dump_zap,		/* ZFS directory		*/
 	dump_zap,		/* ZFS master node		*/
 	dump_zap,		/* ZFS delete queue		*/
 	dump_uint8,		/* zvol object			*/
@@ -939,11 +888,6 @@
 	dump_uint8,		/* SPA history			*/
 	dump_uint64,		/* SPA history offsets		*/
 	dump_zap,		/* Pool properties		*/
-	dump_zap,		/* DSL permissions		*/
-	dump_acl,		/* ZFS ACL			*/
-	dump_uint8,		/* ZFS SYSACL			*/
-	dump_none,		/* FUID nvlist			*/
-	dump_packed_nvlist,	/* FUID nvlist size		*/
 };
 
 static void
@@ -986,15 +930,13 @@
 
 	aux[0] = '\0';
 
-	if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) {
+	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) {
+	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,
@@ -1194,7 +1136,15 @@
 		exit(1);
 	}
 
-	psize = statbuf.st_size;
+	if (S_ISCHR(statbuf.st_mode)) {
+		if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) {
+			(void) printf("failed to get size '%s': %s\n", dev,
+			    strerror(errno));
+			exit(1);
+		}
+	 } else
+		psize = statbuf.st_size;
+
 	psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t));
 
 	for (l = 0; l < VDEV_LABELS; l++) {
@@ -1499,7 +1449,8 @@
 		    (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), blkbuf);
+			zb->zb_level, zb->zb_blkid),
+		    blkbuf);
 	}
 
 	zdb_count_block(spa, zcb, bp, type);
@@ -1514,11 +1465,11 @@
 	zdb_cb_t zcb = { 0 };
 	traverse_blk_cache_t dummy_cache = { 0 };
 	zdb_blkstats_t *zb, *tzb;
-	uint64_t alloc, space, logalloc;
-	vdev_t *rvd = spa->spa_root_vdev;
+	uint64_t alloc, space;
 	int leaks = 0;
 	int advance = zdb_advance;
-	int c, e, flags;
+	int flags;
+	int e;
 
 	zcb.zcb_cache = &dummy_cache;
 
@@ -1606,27 +1557,17 @@
 	alloc = spa_get_alloc(spa);
 	space = spa_get_space(spa);
 
-	/*
-	 * Log blocks allocated from a separate log device don't count
-	 * as part of the normal pool space; factor them in here.
-	 */
-	logalloc = 0;
-
-	for (c = 0; c < rvd->vdev_children; c++)
-		if (rvd->vdev_child[c]->vdev_islog)
-			logalloc += rvd->vdev_child[c]->vdev_stat.vs_alloc;
-
 	tzb = &zcb.zcb_type[ZB_TOTAL][DMU_OT_TOTAL];
 
-	if (tzb->zb_asize == alloc + logalloc) {
+	if (tzb->zb_asize == alloc) {
 		(void) printf("\n\tNo leaks (block sum matches space"
 		    " maps exactly)\n");
 	} else {
 		(void) printf("block traversal size %llu != alloc %llu "
 		    "(leaked %lld)\n",
 		    (u_longlong_t)tzb->zb_asize,
-		    (u_longlong_t)alloc + logalloc,
-		    (u_longlong_t)(alloc + logalloc - tzb->zb_asize));
+		    (u_longlong_t)alloc,
+		    (u_longlong_t)(alloc - tzb->zb_asize));
 		leaks = 1;
 	}
 
@@ -2073,128 +2014,6 @@
 	free(dup);
 }
 
-static boolean_t
-nvlist_string_match(nvlist_t *config, char *name, char *tgt)
-{
-	char *s;
-
-	verify(nvlist_lookup_string(config, name, &s) == 0);
-	return (strcmp(s, tgt) == 0);
-}
-
-static boolean_t
-nvlist_uint64_match(nvlist_t *config, char *name, uint64_t tgt)
-{
-	uint64_t val;
-
-	verify(nvlist_lookup_uint64(config, name, &val) == 0);
-	return (val == tgt);
-}
-
-static boolean_t
-vdev_child_guid_match(nvlist_t *vdev, uint64_t guid)
-{
-	nvlist_t **child;
-	uint_t c, children;
-
-	verify(nvlist_lookup_nvlist_array(vdev, ZPOOL_CONFIG_CHILDREN,
-	    &child, &children) == 0);
-	for (c = 0; c < children; ++c)
-		if (nvlist_uint64_match(child[c], ZPOOL_CONFIG_GUID, guid))
-			return (B_TRUE);
-	return (B_FALSE);
-}
-
-static boolean_t
-vdev_child_string_match(nvlist_t *vdev, char *tgt)
-{
-	nvlist_t **child;
-	uint_t c, children;
-
-	verify(nvlist_lookup_nvlist_array(vdev, ZPOOL_CONFIG_CHILDREN,
-	    &child, &children) == 0);
-	for (c = 0; c < children; ++c) {
-		if (nvlist_string_match(child[c], ZPOOL_CONFIG_PATH, tgt) ||
-		    nvlist_string_match(child[c], ZPOOL_CONFIG_DEVID, tgt))
-			return (B_TRUE);
-	}
-	return (B_FALSE);
-}
-
-static boolean_t
-vdev_guid_match(nvlist_t *config, uint64_t guid)
-{
-	nvlist_t *nvroot;
-
-	verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE,
-	    &nvroot) == 0);
-
-	return (nvlist_uint64_match(nvroot, ZPOOL_CONFIG_GUID, guid) ||
-	    vdev_child_guid_match(nvroot, guid));
-}
-
-static boolean_t
-vdev_string_match(nvlist_t *config, char *tgt)
-{
-	nvlist_t *nvroot;
-
-	verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE,
-	    &nvroot) == 0);
-
-	return (vdev_child_string_match(nvroot, tgt));
-}
-
-static boolean_t
-pool_match(nvlist_t *config, char *tgt)
-{
-	uint64_t guid = strtoull(tgt, NULL, 0);
-
-	if (guid != 0) {
-		return (
-		    nvlist_uint64_match(config, ZPOOL_CONFIG_POOL_GUID, guid) ||
-		    vdev_guid_match(config, guid));
-	} else {
-		return (
-		    nvlist_string_match(config, ZPOOL_CONFIG_POOL_NAME, tgt) ||
-		    vdev_string_match(config, tgt));
-	}
-}
-
-static int
-find_exported_zpool(char *pool_id, nvlist_t **configp, char *vdev_dir)
-{
-	nvlist_t *pools;
-	int error = ENOENT;
-	nvlist_t *match = NULL;
-
-	if (vdev_dir != NULL)
-		pools = zpool_find_import(g_zfs, 1, &vdev_dir);
-	else
-		pools = zpool_find_import(g_zfs, 0, NULL);
-
-	if (pools != NULL) {
-		nvpair_t *elem = NULL;
-
-		while ((elem = nvlist_next_nvpair(pools, elem)) != NULL) {
-			verify(nvpair_value_nvlist(elem, configp) == 0);
-			if (pool_match(*configp, pool_id)) {
-				if (match != NULL) {
-					(void) fatal(
-					    "More than one matching pool - "
-					    "specify guid/devid/device path.");
-				} else {
-					match = *configp;
-					error = 0;
-				}
-			}
-		}
-	}
-
-	*configp = error ? NULL : match;
-
-	return (error);
-}
-
 int
 main(int argc, char **argv)
 {
@@ -2207,15 +2026,13 @@
 	int verbose = 0;
 	int error;
 	int flag, set;
-	int exported = 0;
-	char *vdev_dir = NULL;
 
 	(void) setrlimit(RLIMIT_NOFILE, &rl);
 	(void) enable_extended_FILE_stdio(-1, -1);
 
 	dprintf_setup(&argc, argv);
 
-	while ((c = getopt(argc, argv, "udibcsvCLO:B:UlRep:")) != -1) {
+	while ((c = getopt(argc, argv, "udibcsvCLO:B:UlR")) != -1) {
 		switch (c) {
 		case 'u':
 		case 'd':
@@ -2278,24 +2095,13 @@
 		case 'U':
 			spa_config_dir = "/tmp";
 			break;
-		case 'e':
-			exported = 1;
-			break;
-		case 'p':
-			vdev_dir = optarg;
-			break;
 		default:
 			usage();
 			break;
 		}
 	}
 
-	if (vdev_dir != NULL && exported == 0)
-		(void) fatal("-p option requires use of -e\n");
-
 	kernel_init(FREAD);
-	g_zfs = libzfs_init();
-	ASSERT(g_zfs != NULL);
 
 	/*
 	 * Disable vdev caching.  If we don't do this, live pool traversal
@@ -2350,39 +2156,11 @@
 	if (dump_opt['C'])
 		dump_config(argv[0]);
 
-	if (exported == 0) {
-		if (strchr(argv[0], '/') != NULL) {
-			error = dmu_objset_open(argv[0], DMU_OST_ANY,
-			    DS_MODE_STANDARD | DS_MODE_READONLY, &os);
-		} else {
-			error = spa_open(argv[0], &spa, FTAG);
-		}
+	if (strchr(argv[0], '/') != NULL) {
+		error = dmu_objset_open(argv[0], DMU_OST_ANY,
+		    DS_MODE_STANDARD | DS_MODE_READONLY, &os);
 	} else {
-		/*
-		 * Check to see if the name refers to an exported zpool
-		 */
-		nvlist_t *exported_conf = NULL;
-
-		error = find_exported_zpool(argv[0], &exported_conf, vdev_dir);
-		if (error == 0) {
-			nvlist_t *nvl = NULL;
-
-			if (vdev_dir != NULL) {
-				if (nvlist_alloc(&nvl, NV_UNIQUE_NAME, 0) != 0)
-					error = ENOMEM;
-				else if (nvlist_add_string(nvl,
-				    zpool_prop_to_name(ZPOOL_PROP_ALTROOT),
-				    vdev_dir) != 0)
-					error = ENOMEM;
-			}
-
-			if (error == 0)
-				error = spa_import(argv[0], exported_conf, nvl);
-			if (error == 0)
-				error = spa_open(argv[0], &spa, FTAG);
-
-			nvlist_free(nvl);
-		}
+		error = spa_open(argv[0], &spa, FTAG);
 	}
 
 	if (error)
@@ -2409,7 +2187,6 @@
 		spa_close(spa, FTAG);
 	}
 
-	libzfs_fini(g_zfs);
 	kernel_fini();
 
 	return (0);

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zdb/zdb_il.c#2 (text) ====

@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -233,26 +233,19 @@
 } zil_rec_info_t;
 
 static zil_rec_info_t zil_rec_info[TX_MAX_TYPE] = {
-	{	NULL,			"Total              " },
-	{	zil_prt_rec_create,	"TX_CREATE          " },
-	{	zil_prt_rec_create,	"TX_MKDIR           " },
-	{	zil_prt_rec_create,	"TX_MKXATTR         " },
-	{	zil_prt_rec_create,	"TX_SYMLINK         " },
-	{	zil_prt_rec_remove,	"TX_REMOVE          " },
-	{	zil_prt_rec_remove,	"TX_RMDIR           " },
-	{	zil_prt_rec_link,	"TX_LINK            " },
-	{	zil_prt_rec_rename,	"TX_RENAME          " },
-	{	zil_prt_rec_write,	"TX_WRITE           " },
-	{	zil_prt_rec_truncate,	"TX_TRUNCATE        " },
-	{	zil_prt_rec_setattr,	"TX_SETATTR         " },
-	{	zil_prt_rec_acl,	"TX_ACL_V0          " },
-	{	zil_prt_rec_acl,	"TX_ACL_ACL         " },
-	{	zil_prt_rec_create,	"TX_CREATE_ACL      " },
-	{	zil_prt_rec_create,	"TX_CREATE_ATTR     " },
-	{	zil_prt_rec_create,	"TX_CREATE_ACL_ATTR " },
-	{	zil_prt_rec_create,	"TX_MKDIR_ACL       " },
-	{	zil_prt_rec_create,	"TX_MKDIR_ATTR      " },
-	{	zil_prt_rec_create,	"TX_MKDIR_ACL_ATTR  " },
+	{	NULL,			"Total      "	},
+	{	zil_prt_rec_create,	"TX_CREATE  "	},
+	{	zil_prt_rec_create,	"TX_MKDIR   "	},
+	{	zil_prt_rec_create,	"TX_MKXATTR "	},
+	{	zil_prt_rec_create,	"TX_SYMLINK "	},
+	{	zil_prt_rec_remove,	"TX_REMOVE  "	},
+	{	zil_prt_rec_remove,	"TX_RMDIR   "	},
+	{	zil_prt_rec_link,	"TX_LINK    "	},
+	{	zil_prt_rec_rename,	"TX_RENAME  "	},
+	{	zil_prt_rec_write,	"TX_WRITE   "	},
+	{	zil_prt_rec_truncate,	"TX_TRUNCATE"	},
+	{	zil_prt_rec_setattr,	"TX_SETATTR "	},
+	{	zil_prt_rec_acl,	"TX_ACL     "	},
 };
 
 /* ARGSUSED */
@@ -262,14 +255,12 @@
 	int txtype;
 	int verbose = MAX(dump_opt['d'], dump_opt['i']);
 
-	/* reduce size of txtype to strip off TX_CI bit */
 	txtype = lr->lrc_txtype;
 
 	ASSERT(txtype != 0 && (uint_t)txtype < TX_MAX_TYPE);
 	ASSERT(lr->lrc_txg);
 
-	(void) printf("\t\t%s%s len %6llu, txg %llu, seq %llu\n",
-	    (lr->lrc_txtype & TX_CI) ? "CI-" : "",
+	(void) printf("\t\t%s len %6llu, txg %llu, seq %llu\n",
 	    zil_rec_info[txtype].zri_name,
 	    (u_longlong_t)lr->lrc_reclen,
 	    (u_longlong_t)lr->lrc_txg,

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_iter.c#2 (text) ====

@@ -59,7 +59,7 @@
 	int		cb_recurse;
 	zfs_type_t	cb_types;
 	zfs_sort_column_t *cb_sortcol;
-	zprop_list_t	**cb_proplist;
+	zfs_proplist_t	**cb_proplist;
 } callback_data_t;
 
 uu_avl_pool_t *avl_pool;
@@ -68,7 +68,7 @@
  * Called for each dataset.  If the object the object is of an appropriate type,
  * add it to the avl tree and recurse over any children as necessary.
  */
-static int
+int
 zfs_callback(zfs_handle_t *zhp, void *data)
 {
 	callback_data_t *cb = data;
@@ -100,13 +100,10 @@
 	/*
 	 * Recurse if necessary.
 	 */
-	if (cb->cb_recurse) {
-		if (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM)
-			(void) zfs_iter_filesystems(zhp, zfs_callback, data);
-		if (zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT &&
-		    (cb->cb_types & ZFS_TYPE_SNAPSHOT))
-			(void) zfs_iter_snapshots(zhp, zfs_callback, data);
-	}
+	if (cb->cb_recurse && (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM ||
+	    (zfs_get_type(zhp) == ZFS_TYPE_VOLUME && (cb->cb_types &
+	    ZFS_TYPE_SNAPSHOT))))
+		(void) zfs_iter_children(zhp, zfs_callback, data);
 
 	if (!dontclose)
 		zfs_close(zhp);
@@ -121,7 +118,7 @@
 	zfs_sort_column_t *col;
 	zfs_prop_t prop;
 
-	if ((prop = zfs_name_to_prop(name)) == ZPROP_INVAL &&
+	if ((prop = zfs_name_to_prop(name)) == ZFS_PROP_INVAL &&
 	    !zfs_prop_user(name))
 		return (-1);
 
@@ -129,7 +126,7 @@
 
 	col->sc_prop = prop;
 	col->sc_reverse = reverse;
-	if (prop == ZPROP_INVAL) {
+	if (prop == ZFS_PROP_INVAL) {
 		col->sc_user_prop = safe_malloc(strlen(name) + 1);
 		(void) strcpy(col->sc_user_prop, name);
 	}
@@ -246,7 +243,7 @@
 		 * Otherwise, we compare 'lnum' and 'rnum'.
 		 */
 		lstr = rstr = NULL;
-		if (psc->sc_prop == ZPROP_INVAL) {
+		if (psc->sc_prop == ZFS_PROP_INVAL) {
 			nvlist_t *luser, *ruser;
 			nvlist_t *lval, *rval;
 
@@ -260,10 +257,10 @@
 
 			if (lvalid)
 				verify(nvlist_lookup_string(lval,
-				    ZPROP_VALUE, &lstr) == 0);
+				    ZFS_PROP_VALUE, &lstr) == 0);
 			if (rvalid)
 				verify(nvlist_lookup_string(rval,
-				    ZPROP_VALUE, &rstr) == 0);
+				    ZFS_PROP_VALUE, &rstr) == 0);
 
 		} else if (zfs_prop_is_string(psc->sc_prop)) {
 			lvalid = (zfs_prop_get(l, psc->sc_prop, lbuf,
@@ -313,7 +310,7 @@
 
 int
 zfs_for_each(int argc, char **argv, boolean_t recurse, zfs_type_t types,
-    zfs_sort_column_t *sortcol, zprop_list_t **proplist, zfs_iter_f callback,
+    zfs_sort_column_t *sortcol, zfs_proplist_t **proplist, zfs_iter_f callback,
     void *data, boolean_t args_can_be_paths)
 {
 	callback_data_t cb;

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_iter.h#2 (text) ====

@@ -41,7 +41,7 @@
 } zfs_sort_column_t;
 
 int zfs_for_each(int, char **, boolean_t, zfs_type_t, zfs_sort_column_t *,
-    zprop_list_t **, zfs_iter_f, void *, boolean_t);
+    zfs_proplist_t **, zfs_iter_f, void *, boolean_t);
 int zfs_add_sort_column(zfs_sort_column_t **, const char *, boolean_t);
 void zfs_free_sort_columns(zfs_sort_column_t *);
 

==== //depot/projects/dtrace6/src/contrib/opensolaris/cmd/zfs/zfs_main.c#2 (text) ====

@@ -32,7 +32,6 @@
 #include <libgen.h>
 #include <libintl.h>
 #include <libuutil.h>
-#include <libnvpair.h>
 #include <locale.h>
 #include <stddef.h>
 #include <stdio.h>
@@ -41,15 +40,12 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <zone.h>
-#include <sys/mkdev.h>
 #include <sys/mntent.h>
 #include <sys/mnttab.h>
 #include <sys/mount.h>
 #include <sys/stat.h>
-#include <sys/avl.h>
 
 #include <libzfs.h>
-#include <libuutil.h>
 
 #include "zfs_iter.h"
 #include "zfs_util.h"
@@ -57,7 +53,6 @@
 libzfs_handle_t *g_zfs;
 
 static FILE *mnttab_file;
-static char history_str[HIS_MAX_RECORD_LEN];
 
 static int zfs_do_clone(int argc, char **argv);
 static int zfs_do_create(int argc, char **argv);
@@ -69,7 +64,6 @@
 static int zfs_do_rename(int argc, char **argv);
 static int zfs_do_rollback(int argc, char **argv);
 static int zfs_do_set(int argc, char **argv);
-static int zfs_do_upgrade(int argc, char **argv);
 static int zfs_do_snapshot(int argc, char **argv);
 static int zfs_do_unmount(int argc, char **argv);
 static int zfs_do_share(int argc, char **argv);
@@ -77,8 +71,8 @@
 static int zfs_do_send(int argc, char **argv);
 static int zfs_do_receive(int argc, char **argv);
 static int zfs_do_promote(int argc, char **argv);
-static int zfs_do_allow(int argc, char **argv);
-static int zfs_do_unallow(int argc, char **argv);
+static int zfs_do_jail(int argc, char **argv);
+static int zfs_do_unjail(int argc, char **argv);
 
 /*
  * These libumem hooks provide a reasonable set of defaults for the allocator's
@@ -102,7 +96,8 @@
 	HELP_DESTROY,
 	HELP_GET,
 	HELP_INHERIT,
-	HELP_UPGRADE,
+	HELP_JAIL,
+	HELP_UNJAIL,
 	HELP_LIST,
 	HELP_MOUNT,
 	HELP_PROMOTE,
@@ -114,9 +109,7 @@
 	HELP_SHARE,
 	HELP_SNAPSHOT,
 	HELP_UNMOUNT,
-	HELP_UNSHARE,
-	HELP_ALLOW,
-	HELP_UNALLOW
+	HELP_UNSHARE
 } zfs_help_t;
 
 typedef struct zfs_command {
@@ -149,19 +142,20 @@
 	{ "set",	zfs_do_set,		HELP_SET		},
 	{ "get", 	zfs_do_get,		HELP_GET		},
 	{ "inherit",	zfs_do_inherit,		HELP_INHERIT		},
-	{ "upgrade",	zfs_do_upgrade,		HELP_UPGRADE		},
 	{ NULL },
 	{ "mount",	zfs_do_mount,		HELP_MOUNT		},
+	{ NULL },
 	{ "unmount",	zfs_do_unmount,		HELP_UNMOUNT		},
+	{ NULL },
 	{ "share",	zfs_do_share,		HELP_SHARE		},
+	{ NULL },
 	{ "unshare",	zfs_do_unshare,		HELP_UNSHARE		},
 	{ NULL },
 	{ "send",	zfs_do_send,		HELP_SEND		},
 	{ "receive",	zfs_do_receive,		HELP_RECEIVE		},
 	{ NULL },
-	{ "allow",	zfs_do_allow,		HELP_ALLOW		},
-	{ NULL },
-	{ "unallow",	zfs_do_unallow,		HELP_UNALLOW		},
+	{ "jail",	zfs_do_jail,		HELP_JAIL		},
+	{ "unjail",	zfs_do_unjail,		HELP_UNJAIL		},
 };
 
 #define	NCOMMAND	(sizeof (command_table) / sizeof (command_table[0]))
@@ -173,37 +167,39 @@
 {
 	switch (idx) {
 	case HELP_CLONE:
-		return (gettext("\tclone [-p] <snapshot> "
-		    "<filesystem|volume>\n"));
+		return (gettext("\tclone <snapshot> <filesystem|volume>\n"));
 	case HELP_CREATE:
-		return (gettext("\tcreate [-p] [-o property=value] ... "
+		return (gettext("\tcreate [[-o property=value] ... ] "
 		    "<filesystem>\n"
-		    "\tcreate [-ps] [-b blocksize] [-o property=value] ... "
-		    "-V <size> <volume>\n"));
+		    "\tcreate [-s] [-b blocksize] [[-o property=value] ...]\n"
+		    "\t    -V <size> <volume>\n"));
 	case HELP_DESTROY:
 		return (gettext("\tdestroy [-rRf] "
 		    "<filesystem|volume|snapshot>\n"));
 	case HELP_GET:
-		return (gettext("\tget [-rHp] [-o field[,...]] "
-		    "[-s source[,...]]\n"
-		    "\t    <\"all\" | property[,...]> "
+		return (gettext("\tget [-rHp] [-o field[,field]...] "
+		    "[-s source[,source]...]\n"
+		    "\t    <all | property[,property]...> "
 		    "[filesystem|volume|snapshot] ...\n"));
 	case HELP_INHERIT:
 		return (gettext("\tinherit [-r] <property> "
 		    "<filesystem|volume> ...\n"));
-	case HELP_UPGRADE:
-		return (gettext("\tupgrade [-v]\n"
-		    "\tupgrade [-r] [-V version] <-a | filesystem ...>\n"));
+	case HELP_JAIL:
+		return (gettext("\tjail <jailid> <filesystem>\n"));
+	case HELP_UNJAIL:
+		return (gettext("\tunjail <jailid> <filesystem>\n"));
 	case HELP_LIST:
-		return (gettext("\tlist [-rH] [-o property[,...]] "
-		    "[-t type[,...]] [-s property] ...\n"
-		    "\t    [-S property] ... "
-		    "[filesystem|volume|snapshot] ...\n"));
+		return (gettext("\tlist [-rH] [-o property[,property]...] "
+		    "[-t type[,type]...]\n"
+		    "\t    [-s property [-s property]...]"
+		    " [-S property [-S property]...]\n"
+		    "\t    [filesystem|volume|snapshot] ...\n"));
 	case HELP_MOUNT:
 		return (gettext("\tmount\n"
-		    "\tmount [-vO] [-o opts] <-a | filesystem>\n"));
+		    "\tmount [-o opts] [-O] -a\n"
+		    "\tmount [-o opts] [-O] <filesystem>\n"));
 	case HELP_PROMOTE:
-		return (gettext("\tpromote <clone-filesystem>\n"));
+		return (gettext("\tpromote <clone filesystem>\n"));
 	case HELP_RECEIVE:
 		return (gettext("\treceive [-vnF] <filesystem|volume|"
 		"snapshot>\n"
@@ -211,45 +207,26 @@
 	case HELP_RENAME:
 		return (gettext("\trename <filesystem|volume|snapshot> "
 		    "<filesystem|volume|snapshot>\n"
-		    "\trename -p <filesystem|volume> <filesystem|volume>\n"
 		    "\trename -r <snapshot> <snapshot>"));
 	case HELP_ROLLBACK:
-		return (gettext("\trollback [-rR] <snapshot>\n"));
+		return (gettext("\trollback [-rRf] <snapshot>\n"));
 	case HELP_SEND:
-		return (gettext("\tsend [-R] [-[iI] snapshot] <snapshot>\n"));
+		return (gettext("\tsend [-i <snapshot>] <snapshot>\n"));
 	case HELP_SET:
 		return (gettext("\tset <property=value> "
 		    "<filesystem|volume> ...\n"));
 	case HELP_SHARE:
-		return (gettext("\tshare <-a | filesystem>\n"));
+		return (gettext("\tshare -a\n"
+		    "\tshare <filesystem>\n"));
 	case HELP_SNAPSHOT:
 		return (gettext("\tsnapshot [-r] "
-		    "<filesystem at snapname|volume at snapname>\n"));
+		    "<filesystem at name|volume at name>\n"));
 	case HELP_UNMOUNT:
-		return (gettext("\tunmount [-f] "
-		    "<-a | filesystem|mountpoint>\n"));
+		return (gettext("\tunmount [-f] -a\n"
+		    "\tunmount [-f] <filesystem|mountpoint>\n"));
 	case HELP_UNSHARE:
-		return (gettext("\tunshare [-f] "
-		    "<-a | filesystem|mountpoint>\n"));
-	case HELP_ALLOW:
-		return (gettext("\tallow [-ldug] "
-		    "<\"everyone\"|user|group>[,...] <perm|@setname>[,...]\n"
-		    "\t    <filesystem|volume>\n"
-		    "\tallow [-ld] -e <perm|@setname>[,...] "
-		    "<filesystem|volume>\n"
-		    "\tallow -c <perm|@setname>[,...] <filesystem|volume>\n"
-		    "\tallow -s @setname <perm|@setname>[,...] "
-		    "<filesystem|volume>\n"));
-	case HELP_UNALLOW:
-		return (gettext("\tunallow [-rldug] "
-		    "<\"everyone\"|user|group>[,...]\n"
-		    "\t    [<perm|@setname>[,...]] <filesystem|volume>\n"
-		    "\tunallow [-rld] -e [<perm|@setname>[,...]] "
-		    "<filesystem|volume>\n"
-		    "\tunallow [-r] -c [<perm|@setname>[,...]] "
-		    "<filesystem|volume>\n"
-		    "\tunallow [-r] -s @setname [<perm|@setname>[,...]] "
-		    "<filesystem|volume>\n"));
+		return (gettext("\tunshare [-f] -a\n"
+		    "\tunshare [-f] <filesystem|mountpoint>\n"));
 	}
 
 	abort();
@@ -273,19 +250,17 @@
 }
 
 /*
- * Callback routine that will print out information for each of
+ * Callback routinue that will print out information for each of the

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


More information about the p4-projects mailing list