From cefa7a875a82e1e531a252e72fd7c4351c4222c8 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Sat, 19 Jun 2021 08:02:59 +0800 Subject: [PATCH] - correct patch, fix nonstrict offset mount fail handling. --- ...nonstrict-offset-mount-fail-handling.patch | 28 +++++++++++++++++-- autofs.spec | 5 +++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/autofs-5.1.7-fix-nonstrict-offset-mount-fail-handling.patch b/autofs-5.1.7-fix-nonstrict-offset-mount-fail-handling.patch index c6bd15a..ebc63af 100644 --- a/autofs-5.1.7-fix-nonstrict-offset-mount-fail-handling.patch +++ b/autofs-5.1.7-fix-nonstrict-offset-mount-fail-handling.patch @@ -2,14 +2,23 @@ autofs-5.1.7 - fix nonstrict offset mount fail handling From: Ian Kent -If a triggered offset mount fails automount is no honouring nonstrict -mount failure. +If a triggered offset mount fails automount is not handling nonstrict +mount failure correctly. + +The nonstrict mount failure handling needs to convert an offset mount +failure to a success if the offset subtree below the failed mount is not +empty otherwise it must return the failure. The previous implementation +used -1 to indicate the subtree was empty and that was used to detect +when the mount should fail instead of converting the fail to a success. + +Make the new implementation do the same. Signed-off-by: Ian Kent --- CHANGELOG | 1 + + lib/mounts.c | 2 +- modules/parse_sun.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f5f0da76..ecffa933 100644 @@ -23,6 +32,19 @@ index f5f0da76..ecffa933 100644 25/01/2021 autofs-5.1.7 - make bind mounts propagation slave by default. +diff --git a/lib/mounts.c b/lib/mounts.c +index 5a4602e3..4c866885 100644 +--- a/lib/mounts.c ++++ b/lib/mounts.c +@@ -1616,7 +1616,7 @@ static int tree_mapent_traverse_subtree(struct tree_node *n, tree_work_fn_t work + { + struct traverse_subtree_context *ctxt = ptr; + struct mapent *oe = MAPENT(n); +- int ret = 1; ++ int ret = -1; + + if (n->left) { + ret = tree_mapent_traverse_subtree(n->left, work, ctxt); diff --git a/modules/parse_sun.c b/modules/parse_sun.c index 12844a30..cdf515c6 100644 --- a/modules/parse_sun.c diff --git a/autofs.spec b/autofs.spec index fdd58b5..671e433 100644 --- a/autofs.spec +++ b/autofs.spec @@ -12,7 +12,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs Version: 5.1.7 -Release: 16%{?dist} +Release: 17%{?dist} Epoch: 1 License: GPLv2+ Source: https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-%{version}.tar.gz @@ -347,6 +347,9 @@ fi %dir /etc/auto.master.d %changelog +* Sat Jun 19 2021 Ian Kent - 1:5.1.7-17 +- correct patch, fix nonstrict offset mount fail handling. + * Thu Jun 17 2021 Ian Kent - 1:5.1.7-16 - fix nonstrict offset mount fail handling.