[PATCH 04/11] autofs-5.1.9 - fix skip valid map entries on expire cleanup
Ian Kent <[email protected]> Fri, 31 Oct 2025 09:31:32 +0800
| Newsgroups | org.kernel.vger.autofs |
|---|---|
| Message-ID | <[email protected]> |
After an expire if the current map entry is stale because it could not be cleaned up during the map entry prune (due to the presence of a real mount) it needs to be cleaned up after a successful expire. Currently this is done by update_map_cache() if the entry is contained in an invalid map but it should be doing it if the entry is no longer valid. In addition, if update_map_cache() gets called the umount has been successful so the ioctlfd does not need to be checked (and is in fact updated later in the expire process). Signed-off-by: Ian Kent <[email protected]> --- CHANGELOG | 1 + daemon/automount.c | 9 ++------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d0d040bae..6537f075b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -71,6 +71,7 @@ - quiet possibly noisy log message. - fix devid update on reload. - fix cache writelock must be taken in update_map_cache(). +- fix skip valid map entries on expire cleanup. 02/11/2023 autofs-5.1.9 - fix kernel mount status notification. diff --git a/daemon/automount.c b/daemon/automount.c index c071e63f8..75399ac9b 100644 --- a/daemon/automount.c +++ b/daemon/automount.c @@ -529,16 +529,11 @@ static void update_map_cache(struct autofs_point *ap, const char *path) while (map) { struct mapent *me = NULL; - /* Skip current, in-use cache */ - if (ap->entry->age <= map->age) { - map = map->next; - continue; - } - mc = map->mc; cache_writelock(mc); me = cache_lookup_distinct(mc, key); - if (me && me->ioctlfd == -1) + /* Only for invalid map entries */ + if (me && map->age > me->age) cache_delete(mc, key); cache_unlock(mc); -- 2.51.0