Blame autofs-5.0.5-fix-prune-cache-valid-check.patch
|
Ian Kent |
e767d5 |
autofs-5.0.5 - fix prune cache valid check
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
From: Ian Kent <raven@themaw.net>
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
During a map reload, when pruning the cache we look for a valid map entry
|
|
Ian Kent |
e767d5 |
in another map. In lookup_prune_one_cache() There is a missing check for
|
|
Ian Kent |
e767d5 |
the entry being in the current map which causes the directory cleanup code
|
|
Ian Kent |
e767d5 |
from doing its job.
|
|
Ian Kent |
e767d5 |
---
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
CHANGELOG | 1 +
|
|
Ian Kent |
e767d5 |
daemon/lookup.c | 8 ++++++++
|
|
Ian Kent |
e767d5 |
2 files changed, 9 insertions(+)
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
--- autofs-5.0.5.orig/CHANGELOG
|
|
Ian Kent |
e767d5 |
+++ autofs-5.0.5/CHANGELOG
|
|
Ian Kent |
e767d5 |
@@ -57,6 +57,7 @@
|
|
Ian Kent |
e767d5 |
- use weight only for server selection.
|
|
Ian Kent |
e767d5 |
- fix isspace() wild card substition.
|
|
Ian Kent |
e767d5 |
- auto adjust ldap page size.
|
|
Ian Kent |
e767d5 |
+- fix prune cache valid check.
|
|
Ian Kent |
e767d5 |
|
|
Ian Kent |
e767d5 |
03/09/2009 autofs-5.0.5
|
|
Ian Kent |
e767d5 |
-----------------------
|
|
Ian Kent |
e767d5 |
--- autofs-5.0.5.orig/daemon/lookup.c
|
|
Ian Kent |
e767d5 |
+++ autofs-5.0.5/daemon/lookup.c
|
|
Ian Kent |
e767d5 |
@@ -1060,6 +1060,14 @@ void lookup_prune_one_cache(struct autof
|
|
Ian Kent |
e767d5 |
* cache entry.
|
|
Ian Kent |
e767d5 |
*/
|
|
Ian Kent |
e767d5 |
valid = lookup_source_valid_mapent(ap, key, LKP_DISTINCT);
|
|
Ian Kent |
e767d5 |
+ if (valid && valid->mc == mc) {
|
|
Ian Kent |
e767d5 |
+ /*
|
|
Ian Kent |
e767d5 |
+ * We've found a map entry that has been removed from
|
|
Ian Kent |
e767d5 |
+ * the current cache so it isn't really valid.
|
|
Ian Kent |
e767d5 |
+ */
|
|
Ian Kent |
e767d5 |
+ cache_unlock(valid->mc);
|
|
Ian Kent |
e767d5 |
+ valid = NULL;
|
|
Ian Kent |
e767d5 |
+ }
|
|
Ian Kent |
e767d5 |
if (!valid &&
|
|
Ian Kent |
e767d5 |
is_mounted(_PATH_MOUNTED, path, MNTS_REAL)) {
|
|
Ian Kent |
e767d5 |
debug(ap->logopt,
|