diff options
author | Andrew Bartlett <abartlet@samba.org> | 2016-10-25 10:56:43 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2016-12-01 05:54:22 +0100 |
commit | 2628aa5f7e3b055f0f96462a70d96f8e2221960d (patch) | |
tree | 132fef881d2218f3baba722ddc18e04e2e012cea | |
parent | 37395322c5046e5b7714c0b4697d328f3352a375 (diff) | |
download | samba-2628aa5f7e3b055f0f96462a70d96f8e2221960d.tar.gz |
ldb: Avoid individual memory allocations when searching for indexlist
This reduces the talloc_free() cost when the ldb is terminated.
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
-rw-r--r-- | lib/ldb/ldb_tdb/ldb_cache.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/ldb/ldb_tdb/ldb_cache.c b/lib/ldb/ldb_tdb/ldb_cache.c index 2f19d276ece..8f70d4f91d7 100644 --- a/lib/ldb/ldb_tdb/ldb_cache.c +++ b/lib/ldb/ldb_tdb/ldb_cache.c @@ -374,7 +374,10 @@ int ltdb_cache_load(struct ldb_module *module) indexlist_dn = ldb_dn_new(module, ldb, LTDB_INDEXLIST); if (indexlist_dn == NULL) goto failed; - r = ltdb_search_dn1(module, indexlist_dn, ltdb->cache->indexlist, 0); + r = ltdb_search_dn1(module, indexlist_dn, ltdb->cache->indexlist, + LDB_UNPACK_DATA_FLAG_NO_DATA_ALLOC + |LDB_UNPACK_DATA_FLAG_NO_VALUES_ALLOC + |LDB_UNPACK_DATA_FLAG_NO_DN); if (r != LDB_SUCCESS && r != LDB_ERR_NO_SUCH_OBJECT) { goto failed; } |