From 1b4dfb80fb8fc2a270005dba6721cc3871bb1bfc Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 24 Jul 2009 08:53:18 -0700
Subject: [PATCH] Increase buffer size for nvlist for large configurations It's
 still not clear to me why the default value here is large enough Solaris.  I
 hit this limit again when setting up 120 SATA drives configured as 15 raidz2
 groups each containing 8 drives. We expect to go bigger so we may just want
 to spend a little time and figure out how to make this all dynamic.

---
 lib/libzfs/libzfs_config.c | 2 +-
 lib/libzfs/libzfs_util.c   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/libzfs/libzfs_config.c b/lib/libzfs/libzfs_config.c
index 7811532258..94640d1b12 100644
--- a/lib/libzfs/libzfs_config.c
+++ b/lib/libzfs/libzfs_config.c
@@ -123,7 +123,7 @@ namespace_reload(libzfs_handle_t *hdl)
 			return (no_memory(hdl));
 	}
 
-	if (zcmd_alloc_dst_nvlist(hdl, &zc, 32768) != 0)
+	if (zcmd_alloc_dst_nvlist(hdl, &zc, 0) != 0)
 		return (-1);
 
 	for (;;) {
diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c
index 30829d50de..72714541f6 100644
--- a/lib/libzfs/libzfs_util.c
+++ b/lib/libzfs/libzfs_util.c
@@ -681,7 +681,7 @@ int
 zcmd_alloc_dst_nvlist(libzfs_handle_t *hdl, zfs_cmd_t *zc, size_t len)
 {
 	if (len == 0)
-		len = 2048;
+		len = 128*1024;
 	zc->zc_nvlist_dst_size = len;
 	if ((zc->zc_nvlist_dst = (uint64_t)(uintptr_t)
 	    zfs_alloc(hdl, zc->zc_nvlist_dst_size)) == NULL)