|
Ian Kent |
d34b9e |
autofs-5.0.5 - fix negative cache included map lookup
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
From: Ian Kent <raven@themaw.net>
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
If we are looking up a mount from multiple included map sources we
|
|
Ian Kent |
d34b9e |
can't update the negative cache until we have looked at all sources.
|
|
Ian Kent |
d34b9e |
If we don't postpone the negative cache update we will get a false
|
|
Ian Kent |
d34b9e |
negative on a subsequent lookups.
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
Also clean up "not found" message.
|
|
Ian Kent |
d34b9e |
---
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
CHANGELOG | 1 +
|
|
Ian Kent |
d34b9e |
daemon/lookup.c | 6 +++++-
|
|
Ian Kent |
d34b9e |
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
--- autofs-5.0.5.orig/CHANGELOG
|
|
Ian Kent |
d34b9e |
+++ autofs-5.0.5/CHANGELOG
|
|
Ian Kent |
d34b9e |
@@ -42,6 +42,7 @@
|
|
Ian Kent |
d34b9e |
- fix cache_init() on source re-read.
|
|
Ian Kent |
d34b9e |
- fix mapent becomes negative during lookup.
|
|
Ian Kent |
d34b9e |
- check each dc server individually.
|
|
Ian Kent |
d34b9e |
+- fix negative cache included map lookup.
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
03/09/2009 autofs-5.0.5
|
|
Ian Kent |
d34b9e |
-----------------------
|
|
Ian Kent |
d34b9e |
--- autofs-5.0.5.orig/daemon/lookup.c
|
|
Ian Kent |
d34b9e |
+++ autofs-5.0.5/daemon/lookup.c
|
|
Ian Kent |
d34b9e |
@@ -813,6 +813,10 @@ static void update_negative_cache(struct
|
|
Ian Kent |
d34b9e |
struct map_source *map;
|
|
Ian Kent |
d34b9e |
struct mapent *me;
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
+ /* Don't update negative cache for included maps */
|
|
Ian Kent |
d34b9e |
+ if (source && source->depth)
|
|
Ian Kent |
d34b9e |
+ return;
|
|
Ian Kent |
d34b9e |
+
|
|
Ian Kent |
d34b9e |
/* Have we recorded the lookup fail for negative caching? */
|
|
Ian Kent |
d34b9e |
me = lookup_source_mapent(ap, name, LKP_DISTINCT);
|
|
Ian Kent |
d34b9e |
if (me)
|
|
Ian Kent |
d34b9e |
@@ -823,7 +827,7 @@ static void update_negative_cache(struct
|
|
Ian Kent |
d34b9e |
cache_unlock(me->mc);
|
|
Ian Kent |
d34b9e |
else {
|
|
Ian Kent |
d34b9e |
/* Notify only once after fail */
|
|
Ian Kent |
d34b9e |
- error(ap->logopt, "key \"%s\" not found in map.", name);
|
|
Ian Kent |
d34b9e |
+ logmsg("key \"%s\" not found in map source(s).", name);
|
|
Ian Kent |
d34b9e |
|
|
Ian Kent |
d34b9e |
/* Doesn't exist in any source, just add it somewhere */
|
|
Ian Kent |
d34b9e |
if (source)
|