usr/src/lib/libzfs/common/libzfs_pool.c
changeset 4657 59d80d18fea6
parent 4577 ed36b0e652bc
child 4715 e8d212dda064
--- a/usr/src/lib/libzfs/common/libzfs_pool.c	Fri Jul 13 12:24:36 2007 -0700
+++ b/usr/src/lib/libzfs/common/libzfs_pool.c	Fri Jul 13 13:49:28 2007 -0700
@@ -1442,12 +1442,15 @@
 static int
 do_zvol_create(zfs_handle_t *zhp, void *data)
 {
-	int ret;
+	int ret = 0;
 
-	if (ZFS_IS_VOLUME(zhp))
+	if (ZFS_IS_VOLUME(zhp)) {
 		(void) zvol_create_link(zhp->zfs_hdl, zhp->zfs_name);
+		ret = zfs_iter_snapshots(zhp, do_zvol_create, NULL);
+	}
 
-	ret = zfs_iter_children(zhp, do_zvol_create, NULL);
+	if (ret == 0)
+		ret = zfs_iter_filesystems(zhp, do_zvol_create, NULL);
 
 	zfs_close(zhp);
 
@@ -1470,7 +1473,7 @@
 	    zhp->zpool_name)) == NULL)
 		return (0);
 
-	ret = zfs_iter_children(zfp, do_zvol_create, NULL);
+	ret = zfs_iter_filesystems(zfp, do_zvol_create, NULL);
 
 	zfs_close(zfp);
 	return (ret);