diff options
author | Paul Dagnelie <pcd@delphix.com> | 2019-11-25 13:53:55 -0700 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-12-06 05:47:33 -0700 |
commit | 4d7988d6050abba5c1ff60e7fd196e95c22e20f4 (patch) | |
tree | 9ed1cf9af97ea9a253cd48b5649fe0b2a1beafee /usr/src/lib/libzfs | |
parent | bb4b7f47acc2c683b79216e79167725745ca353b (diff) | |
download | illumos-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.c | 4 | ||||
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_iter.c | 6 | ||||
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_sendrecv.c | 6 |
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); } /* |