- add changes for bug 2232402.
This commit is contained in:
parent
54d7b0739c
commit
9b22cb05aa
111
autofs-5.1.8-allow-null-map-in-indirect-maps.patch
Normal file
111
autofs-5.1.8-allow-null-map-in-indirect-maps.patch
Normal file
@ -0,0 +1,111 @@
|
||||
autofs-5.1.8 - allow -null map in indirect maps
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
We have had reports of GUI programs (such as Nautilus) probing for files
|
||||
such as .hidden in the parent directory of the directory being accessed.
|
||||
|
||||
If using an indirect mount map with a wildcard map entry autofs is duty
|
||||
bound to try and mount these which usually results in a mount failure but
|
||||
can also cause lengthy delays in some cases.
|
||||
|
||||
There are some challenges to modifying application code and even if it
|
||||
can be done it's always open to being broken later by developers that
|
||||
aren't aware of the reasoning behind the original changes.
|
||||
|
||||
Now, there is a machanism in autofs that can be used to ignore certain
|
||||
map entries, the "builtin map -null", see auto.master(5). Currently it
|
||||
can be used only in the master map but this change extends it to be used
|
||||
in indirect mount maps as well. In this way it can be used to handle
|
||||
problematic entries by simply adding a map entry that uses the builtin
|
||||
-null map.
|
||||
|
||||
For example:
|
||||
.hidden -null
|
||||
* someserver:/remote/home/&
|
||||
|
||||
This mechanism is not standard so if one is using systems other than
|
||||
those with Linux autofs and central map storage, such as LDAP, then
|
||||
it would be necessary to configure nsswitch to ensure the files map
|
||||
source is consulted first followed by the remote map source. Then the
|
||||
-null map entries included in a local file map that uses plus map
|
||||
inclusion to move on the the central map source if there is no match.
|
||||
|
||||
For example, in /etc/auto.home we can have:
|
||||
.hidden -null
|
||||
+auto.home
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
daemon/indirect.c | 18 ++++++++++++++++++
|
||||
man/auto.master.5.in | 9 +++++++--
|
||||
3 files changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
--- autofs-5.1.4.orig/CHANGELOG
|
||||
+++ autofs-5.1.4/CHANGELOG
|
||||
@@ -150,6 +150,7 @@
|
||||
- fix some sss error return cases.
|
||||
- fix incorrect matching of cached wildcard key.
|
||||
- fix expire retry looping.
|
||||
+- allow -null map in indirect maps.
|
||||
|
||||
xx/xx/2018 autofs-5.1.5
|
||||
- fix flag file permission.
|
||||
--- autofs-5.1.4.orig/daemon/indirect.c
|
||||
+++ autofs-5.1.4/daemon/indirect.c
|
||||
@@ -799,6 +799,8 @@ int handle_packet_missing_indirect(struc
|
||||
/* Check if we recorded a mount fail for this key anywhere */
|
||||
me = lookup_source_mapent(ap, pkt->name, LKP_DISTINCT);
|
||||
if (me) {
|
||||
+ unsigned int len;
|
||||
+
|
||||
if (me->status >= monotonic_time(NULL)) {
|
||||
ops->send_fail(ap->logopt, ap->ioctlfd,
|
||||
pkt->wait_queue_token, -ENOENT);
|
||||
@@ -807,6 +809,22 @@ int handle_packet_missing_indirect(struc
|
||||
pthread_setcancelstate(state, NULL);
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+ len = me->mapent ? strlen(me->mapent) : 0;
|
||||
+ if (me->mapent && len >= 5 && *me->mapent == '-') {
|
||||
+ char sep = *(me->mapent + 5);
|
||||
+
|
||||
+ if (sep == 0 || sep == ' ' || sep == ',') {
|
||||
+ if (!strncmp(me->mapent, "-null", 5)) {
|
||||
+ ops->send_fail(ap->logopt, ap->ioctlfd,
|
||||
+ pkt->wait_queue_token, -ENOENT);
|
||||
+ cache_unlock(me->mc);
|
||||
+ master_mutex_unlock();
|
||||
+ pthread_setcancelstate(state, NULL);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
cache_unlock(me->mc);
|
||||
}
|
||||
|
||||
--- autofs-5.1.4.orig/man/auto.master.5.in
|
||||
+++ autofs-5.1.4/man/auto.master.5.in
|
||||
@@ -267,13 +267,18 @@ master map entry.
|
||||
If "\-null" is given as the map it is used to tell automount(8) to ignore a subsequent
|
||||
master map entry with the given path.
|
||||
.P
|
||||
-It can only be used for paths that appear in the master map (or in direct mount maps).
|
||||
+It can be used for paths that appear in the master map or in direct mount maps (but
|
||||
+not in direct mount maps themselves) or as a key in an indirect mount map.
|
||||
+.P
|
||||
+An indirect mount map key can be nulled. If so the map key is ignored and does not
|
||||
+result in a mount attempt (essentially the key lookup is abandoned early on).
|
||||
.P
|
||||
An indirect mount map top level mount point path can be nulled. If so no mounts from
|
||||
the nulled mount are performed (essentially it isn't mounted).
|
||||
.P
|
||||
Direct mount map path entries can be nulled. Since they must be present at startup
|
||||
-they are (notionally) part of the master map.
|
||||
+they are (notionally) part of the master map so direct mount paths that use the -null
|
||||
+map may be used in the master map to ignore subsequent direct mount map entries.
|
||||
.P
|
||||
A nulled master map entry path will ignore a single subsequent matching entry. Any
|
||||
matching entry following that will be treated as it normally would be. An example
|
11
autofs.spec
11
autofs.spec
@ -8,7 +8,7 @@
|
||||
Summary: A tool for automatically mounting and unmounting filesystems
|
||||
Name: autofs
|
||||
Version: 5.1.4
|
||||
Release: 109%{?dist}
|
||||
Release: 110%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
Group: System Environment/Daemons
|
||||
@ -326,6 +326,8 @@ Patch324: autofs-5.1.8-fix-some-sss-error-return-cases.patch
|
||||
Patch325: autofs-5.1.8-fix-incorrect-matching-of-cached-wildcard-key.patch
|
||||
Patch326: autofs-5.1.8-fix-expire-retry-looping.patch
|
||||
|
||||
Patch327: autofs-5.1.8-allow-null-map-in-indirect-maps.patch
|
||||
|
||||
%if %{with_systemd}
|
||||
BuildRequires: systemd-units
|
||||
BuildRequires: systemd-devel
|
||||
@ -692,6 +694,8 @@ echo %{version}-%{release} > .version
|
||||
%patch325 -p1
|
||||
%patch326 -p1
|
||||
|
||||
%patch327 -p1
|
||||
|
||||
%build
|
||||
LDFLAGS=-Wl,-z,now
|
||||
%configure --disable-mount-locking --enable-ignore-busy --with-libtirpc --without-hesiod %{?systemd_configure_arg:}
|
||||
@ -786,6 +790,11 @@ fi
|
||||
%dir /etc/auto.master.d
|
||||
|
||||
%changelog
|
||||
* Mon Sep 18 2023 Ian Kent <ikent@redhat.com> - 5.1.4-110
|
||||
- bz2232402 - autofs attempts to mount nonexistant ".hidden" filesystems
|
||||
- allow -null map in indirect maps.
|
||||
- Resolves: rhbz#2232402
|
||||
|
||||
* Fri Jul 14 2023 Ian Kent <ikent@redhat.com> - 5.1.4-109
|
||||
- bz2213267 - filesystems mount and expire immediately
|
||||
- fix expire retry looping.
|
||||
|
Loading…
Reference in New Issue
Block a user