import UBI autofs-5.1.4-109.el8_9.1
This commit is contained in:
parent
0083be5dd7
commit
5bbc3418a3
68
SOURCES/autofs-5.1.9-fix-deadlock-in-remount.patch
Normal file
68
SOURCES/autofs-5.1.9-fix-deadlock-in-remount.patch
Normal file
@ -0,0 +1,68 @@
|
||||
autofs-5.1.9 - fix deadlock in remount
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
If we're starting up or trying to re-connect to an existing direct mount
|
||||
we could be iterating through the map entries with the cache readlock
|
||||
held so we can't just take the writelock for direct mounts. But when
|
||||
trying to re-connect to an existing mount at startup there won't be any
|
||||
other process updating the map entry cache.
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/parse_sun.c | 26 ++++++++++++++++++++++++--
|
||||
2 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
--- autofs-5.1.4.orig/CHANGELOG
|
||||
+++ autofs-5.1.4/CHANGELOG
|
||||
@@ -151,6 +151,7 @@
|
||||
- fix incorrect matching of cached wildcard key.
|
||||
- fix expire retry looping.
|
||||
- fix get parent multi-mount check in try_remount().
|
||||
+- fix deadlock in remount.
|
||||
|
||||
xx/xx/2018 autofs-5.1.5
|
||||
- fix flag file permission.
|
||||
--- autofs-5.1.4.orig/modules/parse_sun.c
|
||||
+++ autofs-5.1.4/modules/parse_sun.c
|
||||
@@ -881,7 +881,18 @@ update_offset_entry(struct autofs_point
|
||||
strcpy(m_mapent, loc);
|
||||
}
|
||||
|
||||
- cache_writelock(mc);
|
||||
+ /*
|
||||
+ * If we're starting up or trying to re-connect to an existing
|
||||
+ * direct mount we could be iterating through the map entries
|
||||
+ * with the readlock held so we can't just take the writelock
|
||||
+ * for direct mounts. But at when trying to re-connect to an
|
||||
+ * existing mount at startup there won't be any other process
|
||||
+ * updating the map entry cache.
|
||||
+ */
|
||||
+ if (ap->state == ST_INIT && ap->flags & MOUNT_FLAG_REMOUNT)
|
||||
+ cache_readlock(mc);
|
||||
+ else
|
||||
+ cache_writelock(mc);
|
||||
ret = cache_update_offset(mc, name, m_key, m_mapent, age);
|
||||
|
||||
me = cache_lookup_distinct(mc, m_key);
|
||||
@@ -1573,7 +1584,18 @@ dont_expand:
|
||||
free(myoptions);
|
||||
} while (*p == '/' || (*p == '"' && *(p + 1) == '/'));
|
||||
|
||||
- cache_writelock(mc);
|
||||
+ /*
|
||||
+ * If we're starting up or trying to re-connect to an existing
|
||||
+ * direct mount we could be iterating through the map entries
|
||||
+ * with the readlock held so we can't just take the writelock
|
||||
+ * for direct mounts. But at when trying to re-connect to an
|
||||
+ * existing mount at startup there won't be any other process
|
||||
+ * updating the map entry cache.
|
||||
+ */
|
||||
+ if (ap->state == ST_INIT && ap->flags & MOUNT_FLAG_REMOUNT)
|
||||
+ cache_readlock(mc);
|
||||
+ else
|
||||
+ cache_writelock(mc);
|
||||
me = cache_lookup_distinct(mc, name);
|
||||
if (!me) {
|
||||
cache_unlock(mc);
|
@ -0,0 +1,43 @@
|
||||
autofs-5.1.9 - fix get parent multi-mount check in try_remount()
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
In commit 635b90ecc (autofs-5.1.8 - fix mount tree startup reconnect)
|
||||
when getting the parent the check for a multi-mount should include a
|
||||
check for the root of the multi-mount as well since the root does not
|
||||
set its parent (it remains NULL).
|
||||
|
||||
We could set the root parent to itself but that may have side effects
|
||||
because the convention has always been the parent is NULL for the
|
||||
multi-mount root.
|
||||
|
||||
Reported-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
|
||||
Suggested-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
lib/mounts.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- 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.
|
||||
+- fix get parent multi-mount check in try_remount().
|
||||
|
||||
xx/xx/2018 autofs-5.1.5
|
||||
- fix flag file permission.
|
||||
--- autofs-5.1.4.orig/lib/mounts.c
|
||||
+++ autofs-5.1.4/lib/mounts.c
|
||||
@@ -2878,7 +2878,7 @@ int try_remount(struct autofs_point *ap,
|
||||
}
|
||||
|
||||
me->flags &= ~MOUNT_FLAG_DIR_CREATED;
|
||||
- mapent = IS_MM(me) ? MM_PARENT(me) : me;
|
||||
+ mapent = IS_MM(me) && !IS_MM_ROOT(me) ? MM_PARENT(me) : me;
|
||||
/* Direct or offset mount, key is full path */
|
||||
if (mapent->key[0] == '/') {
|
||||
if (!is_mounted(mapent->key, MNTS_REAL))
|
@ -8,7 +8,7 @@
|
||||
Summary: A tool for automatically mounting and unmounting filesystems
|
||||
Name: autofs
|
||||
Version: 5.1.4
|
||||
Release: 109%{?dist}
|
||||
Release: 109%{?dist}.1
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
Group: System Environment/Daemons
|
||||
@ -326,6 +326,9 @@ 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.9-fix-get-parent-multi-mount-check-in-try_remount.patch
|
||||
Patch328: autofs-5.1.9-fix-deadlock-in-remount.patch
|
||||
|
||||
%if %{with_systemd}
|
||||
BuildRequires: systemd-units
|
||||
BuildRequires: systemd-devel
|
||||
@ -692,6 +695,9 @@ echo %{version}-%{release} > .version
|
||||
%patch325 -p1
|
||||
%patch326 -p1
|
||||
|
||||
%patch327 -p1
|
||||
%patch328 -p1
|
||||
|
||||
%build
|
||||
LDFLAGS=-Wl,-z,now
|
||||
%configure --disable-mount-locking --enable-ignore-busy --with-libtirpc --without-hesiod %{?systemd_configure_arg:}
|
||||
@ -786,6 +792,13 @@ fi
|
||||
%dir /etc/auto.master.d
|
||||
|
||||
%changelog
|
||||
* Thu Jan 11 2024 Ian Kent <ikent@redhat.com> - 5.1.4-109.el8_9.1
|
||||
- RHEL-21288 - SIGSEGV using hierarchical map entries on reload with
|
||||
autofs-5.1.4-109
|
||||
- fix get parent multi-mount check in try_remount().
|
||||
- fix deadlock in remount.
|
||||
- Resolves: RHEL-21288
|
||||
|
||||
* 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