changeset 952:12ec54aa046e

6344502 placeholder bug for the remaining Makefile cleanup work for ZFS 6343938 ::spa -v tried to read NULL vdev 6345206 zpool iostat doesn't always line up
author eschrock
date Fri, 18 Nov 2005 22:47:38 -0800
parents bf339f1babfa
children 785d08a4a320
files usr/src/Makefile.lint usr/src/Targetdirs usr/src/cmd/availdevs/Makefile usr/src/cmd/availdevs/availdevs.c usr/src/cmd/mdb/common/modules/zfs/zfs.c usr/src/cmd/zpool/Makefile usr/src/cmd/zpool/zpool_main.c usr/src/lib/Makefile usr/src/lib/libsec/Makefile usr/src/lib/libsec/Makefile.com usr/src/lib/libzfs/common/libzfs.h usr/src/lib/libzfs/common/libzfs_config.c usr/src/lib/libzfs/common/libzfs_impl.h usr/src/lib/libzfs/common/libzfs_import.c usr/src/lib/libzfs/common/libzfs_pool.c usr/src/lib/libzfs_jni/Makefile usr/src/lib/libzfs_jni/Makefile.com usr/src/lib/libzfs_jni/common/libzfs_jni_pool.c usr/src/lib/libzpool/Makefile.com usr/src/pkgdefs/etc/exception_list_i386 usr/src/pkgdefs/etc/exception_list_sparc
diffstat 21 files changed, 129 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/Makefile.lint	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/Makefile.lint	Fri Nov 18 22:47:38 2005 -0800
@@ -45,6 +45,7 @@
 	cmd/auditstat \
 	cmd/auths \
 	cmd/autopush \
+	cmd/availdevs \
 	cmd/awk \
 	cmd/banner \
 	cmd/bart \
--- a/usr/src/Targetdirs	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/Targetdirs	Fri Nov 18 22:47:38 2005 -0800
@@ -100,6 +100,7 @@
 	/etc/svc/volatile \
 	/etc/tm  \
 	/etc/usb   \
+	/etc/zfs  \
 	/etc/zones  \
 	/export  \
 	/home  \
--- a/usr/src/cmd/availdevs/Makefile	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/cmd/availdevs/Makefile	Fri Nov 18 22:47:38 2005 -0800
@@ -27,39 +27,31 @@
 #
 
 PROG=		availdevs
-OBJS_COMMON=	availdevs.o
-OBJS=		$(OBJS_COMMON)
-SRCS=		$(OBJS_COMMON:%.o=%.c)
 
 include ../Makefile.cmd
 
 ROOTCMDDIR=	$(ROOTLIB)/zfs
 
-INCS += -I../../lib/libzfs_jni/common \
-	-I/usr/include/libxml2
+INCS += -I/usr/include/libxml2
 
-LDLIBS += -lzfs_jni -lxml2
+#
+# There is no lint library for libxml2, so we need to avoid linking against
+# it during lint, as well as turning off the warnings lint would generate.
+#
+LDLIBS += -lzfs_jni
+all install := LDLIBS += -lxml2
+LINTFLAGS += -xerroff=E_NAME_USED_NOT_DEF2
+
 CPPFLAGS += $(INCS) -D_LARGEFILE64_SOURCE=1 -D_REENTRANT
 
 .KEEP_STATE:
 
-.PARALLEL:
-
 all: $(PROG)
 
-$(PROG): $(OBJS)
-	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
-	$(POST_PROCESS)
-
-%.o: %.c
-	$(COMPILE.c) -o $@ $<
-	$(POST_PROCESS_O)
-
 install: all $(ROOTCMD)
 
 clean:
-	$(RM) $(OBJS)
 
-FRC:
+lint: lint_PROG
 
 include ../Makefile.targ
--- a/usr/src/cmd/availdevs/availdevs.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/cmd/availdevs/availdevs.c	Fri Nov 18 22:47:38 2005 -0800
@@ -63,7 +63,7 @@
 	    available, NULL, (xmlChar *)ELEMENT_DISK, NULL);
 	xmlSetProp(disk,
 	    (xmlChar *)ATTR_DISK_NAME, (xmlChar *)dp->name);
-	snprintf(tmp, sizeof (tmp), "%llu", dp->size);
+	(void) snprintf(tmp, sizeof (tmp), "%llu", dp->size);
 	xmlSetProp(disk, (xmlChar *)ATTR_DISK_SIZE, (xmlChar *)tmp);
 
 	if (dp->aliases != NULL) {
@@ -84,11 +84,11 @@
 			xmlSetProp(slice,
 			    (xmlChar *)ATTR_SLICE_NAME, (xmlChar *)sp->name);
 
-			snprintf(tmp, sizeof (tmp), "%llu", sp->size);
+			(void) snprintf(tmp, sizeof (tmp), "%llu", sp->size);
 			xmlSetProp(slice, (xmlChar *)ATTR_SLICE_SIZE,
 			    (xmlChar *)tmp);
 
-			snprintf(tmp, sizeof (tmp), "%llu", sp->start);
+			(void) snprintf(tmp, sizeof (tmp), "%llu", sp->start);
 			xmlSetProp(slice, (xmlChar *)ATTR_SLICE_START,
 			    (xmlChar *)tmp);
 
@@ -127,7 +127,7 @@
 	xmlSetProp(pool, (xmlChar *)ATTR_POOL_STATE, (xmlChar *)state);
 	xmlSetProp(pool, (xmlChar *)ATTR_POOL_HEALTH, (xmlChar *)health);
 
-	snprintf(tmp, sizeof (tmp), "%llu", guid);
+	(void) snprintf(tmp, sizeof (tmp), "%llu", guid);
 	xmlSetProp(pool, (xmlChar *)ATTR_POOL_ID, (xmlChar *)tmp);
 
 	return (0);
--- a/usr/src/cmd/mdb/common/modules/zfs/zfs.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/cmd/mdb/common/modules/zfs/zfs.c	Fri Nov 18 22:47:38 2005 -0800
@@ -1374,6 +1374,14 @@
 		return (DCMD_ERR);
 	}
 
+	/*
+	 * Unitialized spa_t structures can have a NULL root vdev.
+	 */
+	if (spa.spa_root_vdev == NULL) {
+		mdb_printf("no associated vdevs\n");
+		return (DCMD_OK);
+	}
+
 	v.a_type = MDB_TYPE_STRING;
 	v.a_un.a_str = errors ? "-re" : "-r";
 
--- a/usr/src/cmd/zpool/Makefile	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/cmd/zpool/Makefile	Fri Nov 18 22:47:38 2005 -0800
@@ -29,8 +29,7 @@
 PROG= zpool
 OBJS= zpool_main.o zpool_vdev.o zpool_iter.o zpool_util.o zpool_dataset.o
 SRCS= $(OBJS:%.o=%.c)
-POFILES= zpool_main.po zpool_vdev.po zpool_iter.po zpool_util.po \
-	zpool_dataset.po
+POFILES=$(OBJS:%.o=%.po)
 POFILE= zpool.po
 
 include ../Makefile.cmd
@@ -43,28 +42,21 @@
 LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2 
 LINTFLAGS64 += -xerroff=E_NAME_DEF_NOT_USED2  
 
-CACHEDIR= $(ROOTETC)/zfs
-
 ROOTUSRSBINLINKS = $(PROG:%=$(ROOTUSRSBIN)/%)
 
 .KEEP_STATE:
 
-.PARALLEL:
-
 all: $(PROG)
 
 $(PROG): $(OBJS)
 	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
 	$(POST_PROCESS)
 
-install: all $(ROOTSBINPROG) $(CACHEDIR) $(ROOTUSRSBINLINKS)
-
-$(CACHEDIR):
-	$(INS.dir)
+install: all $(ROOTSBINPROG) $(ROOTUSRSBINLINKS)
 
 $(POFILE): $(POFILES)
 	$(RM) $@
-	cat $(POFILES) > $@
+	$(CAT) $(POFILES) > $@
 
 clean:
 	$(RM) $(OBJS)
@@ -75,6 +67,4 @@
 $(ROOTUSRSBINLINKS):
 	-$(RM) $@; $(SYMLINK) ../../sbin/$(@F) $@
 
-FRC:
-
 include ../Makefile.targ
--- a/usr/src/cmd/zpool/zpool_main.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/cmd/zpool/zpool_main.c	Fri Nov 18 22:47:38 2005 -0800
@@ -337,7 +337,7 @@
 	if ((zhp = zpool_open(poolname)) == NULL)
 		return (1);
 
-	if ((config = zpool_get_config(zhp)) == NULL) {
+	if ((config = zpool_get_config(zhp, NULL)) == NULL) {
 		(void) fprintf(stderr, gettext("pool '%s' is unavailable\n"),
 		    poolname);
 		zpool_close(zhp);
@@ -1254,6 +1254,20 @@
 		    oldnv ? oldchild[c] : NULL, newchild[c], cb, depth + 2);
 }
 
+static int
+refresh_iostat(zpool_handle_t *zhp, void *data)
+{
+	iostat_cbdata_t *cb = data;
+
+	/*
+	 * If the pool has disappeared, remove it from the list and continue.
+	 */
+	if (zpool_refresh_stats(zhp) != 0)
+		pool_list_remove(cb->cb_list, zhp);
+
+	return (0);
+}
+
 /*
  * Callback to print out the iostats for the given pool.
  */
@@ -1263,33 +1277,20 @@
 	iostat_cbdata_t *cb = data;
 	nvlist_t *oldconfig, *newconfig;
 	nvlist_t *oldnvroot, *newnvroot;
-	uint64_t oldtxg, newtxg;
+
+	newconfig = zpool_get_config(zhp, &oldconfig);
 
-	if (zpool_refresh_stats(zhp, &oldconfig, &newconfig) != 0) {
-		/*
-		 * This pool has disappeared, so remove it
-		 * from the list and continue.
-		 */
-		pool_list_remove(cb->cb_list, zhp);
-		return (0);
-	}
+	if (cb->cb_iteration == 1)
+		oldconfig = NULL;
 
-	if (cb->cb_iteration == 1) {
-		if (oldconfig != NULL)
-			nvlist_free(oldconfig);
-		oldconfig = NULL;
-	}
-
-	verify(nvlist_lookup_uint64(newconfig, ZPOOL_CONFIG_POOL_TXG,
-	    &newtxg) == 0);
 	verify(nvlist_lookup_nvlist(newconfig, ZPOOL_CONFIG_VDEV_TREE,
 	    &newnvroot) == 0);
 
-	if (oldconfig == NULL ||
-	    nvlist_lookup_uint64(oldconfig, ZPOOL_CONFIG_POOL_TXG, &oldtxg) ||
-	    oldtxg != newtxg ||
-	    nvlist_lookup_nvlist(oldconfig, ZPOOL_CONFIG_VDEV_TREE, &oldnvroot))
+	if (oldconfig == NULL)
 		oldnvroot = NULL;
+	else
+		verify(nvlist_lookup_nvlist(oldconfig, ZPOOL_CONFIG_VDEV_TREE,
+		    &oldnvroot) == 0);
 
 	/*
 	 * Print out the statistics for the pool.
@@ -1299,9 +1300,6 @@
 	if (cb->cb_verbose)
 		print_iostat_separator(cb);
 
-	if (oldconfig != NULL)
-		nvlist_free(oldconfig);
-
 	return (0);
 }
 
@@ -1311,7 +1309,7 @@
 	iostat_cbdata_t *cb = data;
 	nvlist_t *config, *nvroot;
 
-	if ((config = zpool_get_config(zhp)) != NULL) {
+	if ((config = zpool_get_config(zhp, NULL)) != NULL) {
 		verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE,
 		    &nvroot) == 0);
 		if (!cb->cb_verbose)
@@ -1457,6 +1455,13 @@
 			break;
 
 		/*
+		 * Refresh all statistics.  This is done as an explicit step
+		 * before calculating the maximum name width, so that any
+		 * configuration changes are properly accounted for.
+		 */
+		(void) pool_list_iter(list, FALSE, refresh_iostat, &cb);
+
+		/*
 		 * Iterate over all pools to determine the maximum width
 		 * for the pool / device name column across all pools.
 		 */
@@ -1549,7 +1554,7 @@
 	if (zpool_get_state(zhp) == POOL_STATE_UNAVAIL) {
 		config = NULL;
 	} else {
-		config = zpool_get_config(zhp);
+		config = zpool_get_config(zhp, NULL);
 		total = zpool_get_space_total(zhp);
 		used = zpool_get_space_used(zhp);
 	}
@@ -1813,7 +1818,7 @@
 	if ((zhp = zpool_open(poolname)) == NULL)
 		return (1);
 
-	if ((config = zpool_get_config(zhp)) == NULL) {
+	if ((config = zpool_get_config(zhp, NULL)) == NULL) {
 		(void) fprintf(stderr, gettext("pool '%s' is unavailable\n"),
 		    poolname);
 		zpool_close(zhp);
@@ -2223,7 +2228,7 @@
 	int reason;
 	char *health;
 
-	config = zpool_get_config(zhp);
+	config = zpool_get_config(zhp, NULL);
 	reason = zpool_get_status(zhp, &msgid);
 
 	cbp->cb_count++;
--- a/usr/src/lib/Makefile	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/Makefile	Fri Nov 18 22:47:38 2005 -0800
@@ -331,6 +331,7 @@
 	libwrap		\
 	libxcurses2	\
 	libzfs		\
+	libzfs_jni	\
 	libzoneinfo	\
 	lvm		\
 	openssl		\
--- a/usr/src/lib/libsec/Makefile	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libsec/Makefile	Fri Nov 18 22:47:38 2005 -0800
@@ -51,8 +51,6 @@
 
 lint: $(SUBDIRS)
 
-# install rule for install_h target
-
 install_h: $(ROOTHDRS)
 
 check: $(CHECKHDRS)
--- a/usr/src/lib/libsec/Makefile.com	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libsec/Makefile.com	Fri Nov 18 22:47:38 2005 -0800
@@ -42,7 +42,6 @@
 
 CFLAGS +=	$(CCVERBOSE)
 CPPFLAGS +=	-I$(SRCDIR) -I../../../common/acl
-DYNFLAGS +=	$(MAPOPTS)
 LDLIBS += -lc 
 
 # install this library in the root filesystem
--- a/usr/src/lib/libzfs/common/libzfs.h	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs/common/libzfs.h	Fri Nov 18 22:47:38 2005 -0800
@@ -129,9 +129,8 @@
 /*
  * Statistics and configuration functions.
  */
-extern nvlist_t *zpool_get_config(zpool_handle_t *);
-extern int zpool_refresh_stats(zpool_handle_t *,
-    nvlist_t **oldconfig, nvlist_t **newconfig);
+extern nvlist_t *zpool_get_config(zpool_handle_t *, nvlist_t **oldconfig);
+extern int zpool_refresh_stats(zpool_handle_t *);
 
 /*
  * Import and export functions
--- a/usr/src/lib/libzfs/common/libzfs_config.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs/common/libzfs_config.c	Fri Nov 18 22:47:38 2005 -0800
@@ -184,8 +184,10 @@
  * describing the vdevs, as well as the statistics associated with each one.
  */
 nvlist_t *
-zpool_get_config(zpool_handle_t *zhp)
+zpool_get_config(zpool_handle_t *zhp, nvlist_t **oldconfig)
 {
+	if (oldconfig)
+		*oldconfig = zhp->zpool_old_config;
 	return (zhp->zpool_config);
 }
 
@@ -196,11 +198,11 @@
  * been destroyed.
  */
 int
-zpool_refresh_stats(zpool_handle_t *zhp, nvlist_t **oldconfig,
-    nvlist_t **newconfig)
+zpool_refresh_stats(zpool_handle_t *zhp)
 {
 	zfs_cmd_t zc = { 0 };
 	int error;
+	nvlist_t *config;
 
 	(void) strcpy(zc.zc_name, zhp->zpool_name);
 
@@ -240,19 +242,33 @@
 	}
 
 	verify(nvlist_unpack((void *)(uintptr_t)zc.zc_config_dst,
-	    zc.zc_config_dst_size, newconfig, 0) == 0);
+	    zc.zc_config_dst_size, &config, 0) == 0);
 
 	zhp->zpool_config_size = zc.zc_config_dst_size;
 	free((void *)(uintptr_t)zc.zc_config_dst);
 
-	set_pool_health(*newconfig);
+	set_pool_health(config);
+
+	if (zhp->zpool_config != NULL) {
+		uint64_t oldtxg, newtxg;
+
+		verify(nvlist_lookup_uint64(zhp->zpool_config,
+		    ZPOOL_CONFIG_POOL_TXG, &oldtxg) == 0);
+		verify(nvlist_lookup_uint64(config,
+		    ZPOOL_CONFIG_POOL_TXG, &newtxg) == 0);
 
-	if (oldconfig != NULL)
-		*oldconfig = zhp->zpool_config;
-	else
-		nvlist_free(zhp->zpool_config);
+		if (zhp->zpool_old_config != NULL)
+			nvlist_free(zhp->zpool_old_config);
 
-	zhp->zpool_config = *newconfig;
+		if (oldtxg != newtxg) {
+			nvlist_free(zhp->zpool_config);
+			zhp->zpool_old_config = NULL;
+		} else {
+			zhp->zpool_old_config = zhp->zpool_config;
+		}
+	}
+
+	zhp->zpool_config = config;
 
 	return (error);
 }
--- a/usr/src/lib/libzfs/common/libzfs_impl.h	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs/common/libzfs_impl.h	Fri Nov 18 22:47:38 2005 -0800
@@ -56,6 +56,7 @@
 	int zpool_state;
 	size_t zpool_config_size;
 	nvlist_t *zpool_config;
+	nvlist_t *zpool_old_config;
 };
 
 void zfs_error(const char *, ...);
--- a/usr/src/lib/libzfs/common/libzfs_import.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs/common/libzfs_import.c	Fri Nov 18 22:47:38 2005 -0800
@@ -720,7 +720,8 @@
 			 * it's not in use.
 			 */
 			if ((zhp = zpool_open_canfail(name)) != NULL &&
-			    (pool_config = zpool_get_config(zhp)) != NULL) {
+			    (pool_config = zpool_get_config(zhp, NULL))
+			    != NULL) {
 				nvlist_t *nvroot;
 
 				verify(nvlist_lookup_nvlist(pool_config,
--- a/usr/src/lib/libzfs/common/libzfs_pool.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs/common/libzfs_pool.c	Fri Nov 18 22:47:38 2005 -0800
@@ -139,7 +139,6 @@
 zpool_open_canfail(const char *pool)
 {
 	zpool_handle_t *zhp;
-	nvlist_t *newconfig;
 	int error;
 
 	/*
@@ -155,7 +154,7 @@
 
 	(void) strlcpy(zhp->zpool_name, pool, sizeof (zhp->zpool_name));
 
-	if ((error = zpool_refresh_stats(zhp, NULL, &newconfig)) != 0) {
+	if ((error = zpool_refresh_stats(zhp)) != 0) {
 		if (error == ENOENT || error == EINVAL) {
 			zfs_error(dgettext(TEXT_DOMAIN, "cannot open '%s': no "
 			    "such pool"), pool);
@@ -179,14 +178,13 @@
 zpool_open_silent(const char *pool)
 {
 	zpool_handle_t *zhp;
-	nvlist_t *newconfig;
 	int error;
 
 	zhp = zfs_malloc(sizeof (zpool_handle_t));
 
 	(void) strlcpy(zhp->zpool_name, pool, sizeof (zhp->zpool_name));
 
-	if ((error = zpool_refresh_stats(zhp, NULL, &newconfig)) != 0) {
+	if ((error = zpool_refresh_stats(zhp)) != 0) {
 		if (error == ENOENT || error == EINVAL) {
 			free(zhp);
 			return (NULL);
@@ -232,6 +230,8 @@
 {
 	if (zhp->zpool_config)
 		nvlist_free(zhp->zpool_config);
+	if (zhp->zpool_old_config)
+		nvlist_free(zhp->zpool_old_config);
 	free(zhp);
 }
 
--- a/usr/src/lib/libzfs_jni/Makefile	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs_jni/Makefile	Fri Nov 18 22:47:38 2005 -0800
@@ -30,6 +30,7 @@
 HDRS=		libzfs_jni_dataset.h \
 		libzfs_jni_disk.h \
 		libzfs_jni_diskmgt.h \
+		libzfs_jni_ipool.h \
 		libzfs_jni_main.h \
 		libzfs_jni_pool.h \
 		libzfs_jni_property.h \
@@ -46,28 +47,19 @@
 install :=	TARGET= install
 lint :=		TARGET= lint
 
-MSGFILES =
-
-POFILE =
-
 .KEEP_STATE:
 
 all clean clobber install: spec .WAIT $(SUBDIRS)
 
-$(POFILE):	pofile_MSGFILES
-
 lint: $(SUBDIRS)
 
 install_h: $(ROOTHDRS)
 
 check: $(CHECKHDRS)
 
-_msg: $(MSGDOMAINPOFILE)
-
 $(SUBDIRS) spec: FRC
 	@cd $@; pwd; $(MAKE) $(TARGET)
 
 FRC:
 
 include ../Makefile.targ
-include ../../Makefile.msg.targ
--- a/usr/src/lib/libzfs_jni/Makefile.com	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs_jni/Makefile.com	Fri Nov 18 22:47:38 2005 -0800
@@ -28,28 +28,24 @@
 LIBRARY= libzfs_jni.a
 VERS= .1
 
-OBJS_COMMON=	libzfs_jni_dataset.o \
+OBJECTS=	libzfs_jni_dataset.o \
 		libzfs_jni_disk.o \
 		libzfs_jni_diskmgt.o \
 		libzfs_jni_main.o \
 		libzfs_jni_pool.o \
 		libzfs_jni_property.o \
 		libzfs_jni_util.o
-OBJECTS= $(OBJS_COMMON)
 
 include ../../Makefile.lib
 
 LIBS=	$(DYNLIB) $(LINTLIB)
 
-INCS += -I$(SRCDIR) \
-	-I../../../common/zfsj \
-	-I$(JAVA_ROOT)/include \
+INCS += -I$(JAVA_ROOT)/include \
 	-I$(JAVA_ROOT)/include/solaris
 
 LDLIBS +=	-lc -lnvpair -ldiskmgt -lzfs
 CPPFLAGS +=	$(INCS)
 
-SRCS=	$(OBJS_COMMON:%.o=$(SRCDIR)/%.c)
 $(LINTLIB) := SRCS=	$(SRCDIR)/$(LINTSRC)
 
 SRCDIR=		../common
@@ -62,8 +58,4 @@
 
 lint: lintcheck
 
-pics/%.o: ../../../common/zfsj/%.c
-	$(COMPILE.c) -o $@ $<
-	$(POST_PROCESS_O)
-
 include ../../Makefile.targ
--- a/usr/src/lib/libzfs_jni/common/libzfs_jni_pool.c	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzfs_jni/common/libzfs_jni_pool.c	Fri Nov 18 22:47:38 2005 -0800
@@ -540,7 +540,7 @@
 	nvlist_t *root = NULL;
 
 	if (zhp != NULL) {
-		nvlist_t *attrs = zpool_get_config(zhp);
+		nvlist_t *attrs = zpool_get_config(zhp, NULL);
 
 		if (attrs != NULL) {
 			int result = nvlist_lookup_nvlist(
--- a/usr/src/lib/libzpool/Makefile.com	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/lib/libzpool/Makefile.com	Fri Nov 18 22:47:38 2005 -0800
@@ -28,6 +28,7 @@
 LIBRARY= libzpool.a
 VERS= .1
 
+# include the list of ZFS sources
 include ../../../uts/common/Makefile.files
 KERNEL_OBJS = kernel.o taskq.o util.o
 LIST_OBJS = list.o
@@ -38,11 +39,11 @@
 include ../../Makefile.lib
 
 ZFS_COMMON_SRCS=	$(ZFS_COMMON_OBJS:%.o=../../../uts/common/fs/zfs/%.c)
-SHARED_SRCS=		$(ZFS_SHARED_OBJS:%.o=../../../common/zfs/%.c)
+ZFS_SHARED_SRCS=	$(ZFS_SHARED_OBJS:%.o=../../../common/zfs/%.c)
 KERNEL_SRCS=		$(KERNEL_OBJS:%.o=../common/%.c)
 LIST_SRCS=		$(LIST_OBJS:%.o=../../../uts/common/os/%.c)
 
-SRCS=$(ZFS_COMMON_SRCS) $(KERNEL_SRCS) $(LIST_SRCS)
+SRCS=$(ZFS_COMMON_SRCS) $(ZFS_SHARED_SRCS) $(KERNEL_SRCS) $(LIST_SRCS)
 SRCDIR=		../common
 
 LIBS +=		$(LINTLIB)
@@ -69,15 +70,14 @@
 
 include ../../Makefile.targ
 
-objs/%.o pics/%.o: ../../../uts/common/fs/zfs/%.c
+pics/%.o: ../../../uts/common/fs/zfs/%.c
 	$(COMPILE.c) -o $@ $<
 	$(POST_PROCESS_O)
 
-objs/%.o pics/%.o: ../../../common/zfs/%.c
+pics/%.o: ../../../common/zfs/%.c
 	$(COMPILE.c) -o $@ $<
 	$(POST_PROCESS_O)
 
-objs/%.o pics/%.o: ../../../uts/common/os/%.c
+pics/%.o: ../../../uts/common/os/%.c
 	$(COMPILE.c) -o $@ $<
 	$(POST_PROCESS_O)
-
--- a/usr/src/pkgdefs/etc/exception_list_i386	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/pkgdefs/etc/exception_list_i386	Fri Nov 18 22:47:38 2005 -0800
@@ -748,6 +748,17 @@
 usr/lib/amd64/llib-lzfs.ln		i386
 usr/lib/amd64/llib-lzfs_jni.ln		i386
 usr/lib/amd64/llib-lzpool.ln		i386
+#
+# ZFS JNI headers
+#
+usr/include/libzfs_jni_dataset.h	i386
+usr/include/libzfs_jni_disk.h		i386
+usr/include/libzfs_jni_diskmgt.h	i386
+usr/include/libzfs_jni_ipool.h		i386
+usr/include/libzfs_jni_main.h		i386
+usr/include/libzfs_jni_pool.h		i386
+usr/include/libzfs_jni_property.h	i386
+usr/include/libzfs_jni_util.h		i386
 
 #
 # These files are installed in the proto area for Solaris scsi_vhci driver
--- a/usr/src/pkgdefs/etc/exception_list_sparc	Fri Nov 18 22:15:07 2005 -0800
+++ b/usr/src/pkgdefs/etc/exception_list_sparc	Fri Nov 18 22:47:38 2005 -0800
@@ -814,6 +814,17 @@
 usr/lib/sparcv9/llib-lzfs.ln		sparc
 usr/lib/sparcv9/llib-lzfs_jni.ln	sparc
 usr/lib/sparcv9/llib-lzpool.ln		sparc
+#
+# ZFS JNI headers
+#
+usr/include/libzfs_jni_dataset.h	sparc
+usr/include/libzfs_jni_disk.h		sparc
+usr/include/libzfs_jni_diskmgt.h	sparc
+usr/include/libzfs_jni_ipool.h		sparc
+usr/include/libzfs_jni_main.h		sparc
+usr/include/libzfs_jni_pool.h		sparc
+usr/include/libzfs_jni_property.h	sparc
+usr/include/libzfs_jni_util.h		sparc
 
 #
 # These files are installed in the proto area for Solaris scsi_vhci driver