URL:
https://github.com/SSSD/sssd/pull/866
Title: #866: autofs: do not enumerate when only single entry is requested
pbrezina commented:
"""
Dowstream tests pass now. I squashed this diff to `autofs: always refresh auto.master` so
the expiration time is set to 1 only when master map is requested not when `clear cache`
signal comes from `sss_cache` tool.
```diff
From d849398f6d630ce72f20c7b40a147c68cf0d79f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina(a)redhat.com>
Date: Tue, 10 Sep 2019 11:02:27 +0200
Subject: [PATCH] b
---
src/responder/autofs/autofssrv_cmd.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/responder/autofs/autofssrv_cmd.c b/src/responder/autofs/autofssrv_cmd.c
index 77c1c0921acea2c68c292be179a8d5aba988d0e6..6d51e75acf53a70acaad50bf54095e54d5a145f4
100644
--- a/src/responder/autofs/autofssrv_cmd.c
+++ b/src/responder/autofs/autofssrv_cmd.c
@@ -135,23 +135,9 @@ autofs_fill_entry(struct ldb_message *entry, struct sss_packet
*packet, size_t *
void
autofs_orphan_maps(struct autofs_ctx *autofs_ctx)
{
- struct sss_domain_info *dom;
- errno_t ret;
-
/* It will automatically decrease the refcount of enum_ctx through
* delete callback. */
sss_ptr_hash_delete_all(autofs_ctx->maps, false);
-
- DEBUG(SSSDBG_TRACE_FUNC, "Invalidating autofs maps\n");
- for (dom = autofs_ctx->rctx->domains;
- dom != NULL;
- dom = get_next_domain(dom, SSS_GND_DESCEND)) {
- ret = sysdb_invalidate_autofs_maps(dom);
- if (ret != EOK) {
- DEBUG(SSSDBG_MINOR_FAILURE, "Unable to invalidate maps in "
- "%s [%d]: %s\n", dom->name, ret, sss_strerror(ret));
- }
- }
}
static void
@@ -222,6 +208,9 @@ static void
autofs_orphan_master_map(struct autofs_ctx *autofs_ctx,
const char *mapname)
{
+ struct sss_domain_info *dom;
+ errno_t ret;
+
if (strcmp(mapname, "auto.master") != 0) {
return;
}
@@ -230,6 +219,17 @@ autofs_orphan_master_map(struct autofs_ctx *autofs_ctx,
/* Remove and invalidate all maps. */
autofs_orphan_maps(autofs_ctx);
+
+ DEBUG(SSSDBG_TRACE_FUNC, "Invalidating autofs maps\n");
+ for (dom = autofs_ctx->rctx->domains;
+ dom != NULL;
+ dom = get_next_domain(dom, SSS_GND_DESCEND)) {
+ ret = sysdb_invalidate_autofs_maps(dom);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_MINOR_FAILURE, "Unable to invalidate maps in "
+ "%s [%d]: %s\n", dom->name, ret, sss_strerror(ret));
+ }
+ }
}
struct autofs_setent_state {
--
2.20.1
```
"""
See the full comment at
https://github.com/SSSD/sssd/pull/866#issuecomment-529916366