Blob Blame History Raw
autofs-5.1.7 - fix return from umount_subtree_mounts() on offset list delete

From: Ian Kent <raven@themaw.net>

When there are no mounts left in a subtree of offset mounts the offset
list is deleted. If all goes well deleting the list this shouldn't cause
a positive return from umount_subtree_mounts() (essentially saying that
the umount of the subtree has not succeeded).

Signed-off-by: Ian Kent <raven@themaw.net>
---
 CHANGELOG          |    1 +
 daemon/automount.c |    5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 64e619ec..6e0edd74 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,7 @@
 - simplify mount_subtree() mount check.
 - fix mnts_get_expire_list() expire list construction.
 - fix inconsistent locking in umount_subtree_mounts().
+- fix return from umount_subtree_mounts() on offset list delete.
 
 25/01/2021 autofs-5.1.7
 - make bind mounts propagation slave by default.
diff --git a/daemon/automount.c b/daemon/automount.c
index 93bd8556..62530b6b 100644
--- a/daemon/automount.c
+++ b/daemon/automount.c
@@ -590,9 +590,10 @@ static int umount_subtree_mounts(struct autofs_point *ap, const char *path, unsi
 
 		if (!left && is_mm_root) {
 			status = cache_delete_offset_list(mc, me->key);
-			if (status != CHE_OK)
+			if (status != CHE_OK) {
 				warn(ap->logopt, "couldn't delete offset list");
-			left++;
+				left++;
+			}
 		}
 
 		if (ap->entry->maps &&