summaryrefslogtreecommitdiff
path: root/usr/src/lib/libzfs
diff options
context:
space:
mode:
authorPaul Dagnelie <pcd@delphix.com>2019-11-25 13:53:55 -0700
committerJerry Jelinek <jerry.jelinek@joyent.com>2019-12-06 05:47:33 -0700
commit4d7988d6050abba5c1ff60e7fd196e95c22e20f4 (patch)
tree9ed1cf9af97ea9a253cd48b5649fe0b2a1beafee /usr/src/lib/libzfs
parentbb4b7f47acc2c683b79216e79167725745ca353b (diff)
downloadillumos-gate-4d7988d6050abba5c1ff60e7fd196e95c22e20f4.tar.gz
11971 Reduce loaded range tree memory usage
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: George Wilson <gwilson@delphix.com> Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Sebastien Roy seb@delphix.com Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/lib/libzfs')
-rw-r--r--usr/src/lib/libzfs/common/libzfs_dataset.c4
-rw-r--r--usr/src/lib/libzfs/common/libzfs_iter.c6
-rw-r--r--usr/src/lib/libzfs/common/libzfs_sendrecv.c6
3 files changed, 13 insertions, 3 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_dataset.c b/usr/src/lib/libzfs/common/libzfs_dataset.c
index b4aab0737a..6de04a541c 100644
--- a/usr/src/lib/libzfs/common/libzfs_dataset.c
+++ b/usr/src/lib/libzfs/common/libzfs_dataset.c
@@ -781,7 +781,9 @@ libzfs_mnttab_cache_compare(const void *arg1, const void *arg2)
rv = strcmp(mtn1->mtn_mt.mnt_special, mtn2->mtn_mt.mnt_special);
- return (AVL_ISIGN(rv));
+ if (rv == 0)
+ return (0);
+ return (rv > 0 ? 1 : -1);
}
void
diff --git a/usr/src/lib/libzfs/common/libzfs_iter.c b/usr/src/lib/libzfs/common/libzfs_iter.c
index cb5ed6b005..8fc3eea4f4 100644
--- a/usr/src/lib/libzfs/common/libzfs_iter.c
+++ b/usr/src/lib/libzfs/common/libzfs_iter.c
@@ -273,7 +273,11 @@ zfs_snapshot_compare(const void *larg, const void *rarg)
lcreate = zfs_prop_get_int(l, ZFS_PROP_CREATETXG);
rcreate = zfs_prop_get_int(r, ZFS_PROP_CREATETXG);
- return (AVL_CMP(lcreate, rcreate));
+ if (lcreate < rcreate)
+ return (-1);
+ if (lcreate > rcreate)
+ return (+1);
+ return (0);
}
int
diff --git a/usr/src/lib/libzfs/common/libzfs_sendrecv.c b/usr/src/lib/libzfs/common/libzfs_sendrecv.c
index 36683ac8e2..174380a777 100644
--- a/usr/src/lib/libzfs/common/libzfs_sendrecv.c
+++ b/usr/src/lib/libzfs/common/libzfs_sendrecv.c
@@ -493,7 +493,11 @@ fsavl_compare(const void *arg1, const void *arg2)
const fsavl_node_t *fn1 = (const fsavl_node_t *)arg1;
const fsavl_node_t *fn2 = (const fsavl_node_t *)arg2;
- return (AVL_CMP(fn1->fn_guid, fn2->fn_guid));
+ if (fn1->fn_guid > fn2->fn_guid)
+ return (+1);
+ if (fn1->fn_guid < fn2->fn_guid)
+ return (-1);
+ return (0);
}
/*