[autofs] - fix incorrect autofs.conf installed and add several upstream bug fixes.
Ian Kent
iankent at fedoraproject.org
Tue Nov 18 01:42:09 UTC 2014
commit b160aedcf1c254f8ffc64d46ac7253863055e1c2
Author: Ian Kent <ikent at redhat.com>
Date: Tue Nov 18 09:41:46 2014 +0800
- fix incorrect autofs.conf installed and add several upstream bug fixes.
autofs-5.1.0-fix-hosts-map-update-on-reload.patch | 84 ++++++++++++++++++++
autofs-5.1.0-fix-typo-in-update_hosts_mounts.patch | 35 ++++++++
autofs-5.1.0-init-qdn-before-use.patch | 35 ++++++++
autofs.spec | 13 +++-
4 files changed, 166 insertions(+), 1 deletions(-)
---
diff --git a/autofs-5.1.0-fix-hosts-map-update-on-reload.patch b/autofs-5.1.0-fix-hosts-map-update-on-reload.patch
new file mode 100644
index 0000000..872a3e2
--- /dev/null
+++ b/autofs-5.1.0-fix-hosts-map-update-on-reload.patch
@@ -0,0 +1,84 @@
+autofs-5.1.0 - fix hosts map update on reload
+
+From: Ian Kent <ikent at redhat.com>
+
+Commit aedfd5aa - "amd lookup fix host mount naming" introduced a
+regression when updating sun format maps.
+
+The amd host mount type assumes the lookup name is the host name for
+the host mount but amd uses ${rhost} for this.
+
+This introduces the possibility of multiple concurrent mount requests
+since constructing a mount tree that isn't under the lookup name can't
+take advantage of the kernel queuing of other concurrent lookups while
+the mount tree is constructed.
+
+Consequently multi-mount updates (currently only done for the internal
+hosts map which the amd parser also uses for its hosts map) can't be
+allowed for amd mounts.
+---
+ CHANGELOG | 1 +
+ modules/parse_sun.c | 37 ++++++++++++++++++++++++++++---------
+ 2 files changed, 29 insertions(+), 9 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 645efe5..59f2906 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -36,6 +36,7 @@
+ - fix fix master map type check.
+ - init qdn before use in get_query_dn().
+ - fix typo in update_hosts_mounts().
++- fix hosts map update on reload.
+
+ 04/06/2014 autofs-5.1.0
+ =======================
+diff --git a/modules/parse_sun.c b/modules/parse_sun.c
+index b881ee9..a3c736e 100644
+--- a/modules/parse_sun.c
++++ b/modules/parse_sun.c
+@@ -1356,16 +1356,35 @@ int parse_mount(struct autofs_point *ap, const char *name,
+ }
+
+ cache_multi_writelock(me);
+- /* Someone beat us to it, return success */
+- if (me->multi) {
+- free(options);
+- cache_multi_unlock(me);
+- cache_unlock(mc);
+- pthread_setcancelstate(cur_state, NULL);
+- return 0;
+- }
+ /* So we know we're the multi-mount root */
+- me->multi = me;
++ if (!me->multi)
++ me->multi = me;
++ else {
++ /*
++ * The amd host mount type assumes the lookup name
++ * is the host name for the host mount but amd uses
++ * ${rhost} for this.
++ *
++ * This introduces the possibility of multiple
++ * concurrent mount requests since constructing a
++ * mount tree that isn't under the lookup name can't
++ * take advantage of the kernel queuing of other
++ * concurrent lookups while the mount tree is
++ * constructed.
++ *
++ * Consequently multi-mount updates (currently only
++ * done for the internal hosts map which the amd
++ * parser also uses for its hosts map) can't be
++ * allowed for amd mounts.
++ */
++ if (source->flags & MAP_FLAG_FORMAT_AMD) {
++ free(options);
++ cache_multi_unlock(me);
++ cache_unlock(mc);
++ pthread_setcancelstate(cur_state, NULL);
++ return 0;
++ }
++ }
+
+ age = me->age;
+
diff --git a/autofs-5.1.0-fix-typo-in-update_hosts_mounts.patch b/autofs-5.1.0-fix-typo-in-update_hosts_mounts.patch
new file mode 100644
index 0000000..7580e0c
--- /dev/null
+++ b/autofs-5.1.0-fix-typo-in-update_hosts_mounts.patch
@@ -0,0 +1,35 @@
+autofs-5.1.0 - fix typo in update_hosts_mounts()
+
+From: Ian Kent <ikent at redhat.com>
+
+Correct the stutter in the update exports message.
+---
+ CHANGELOG | 1 +
+ modules/lookup_hosts.c | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 7c0a7bb..645efe5 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -35,6 +35,7 @@
+ - update man page autofs(8) for systemd.
+ - fix fix master map type check.
+ - init qdn before use in get_query_dn().
++- fix typo in update_hosts_mounts().
+
+ 04/06/2014 autofs-5.1.0
+ =======================
+diff --git a/modules/lookup_hosts.c b/modules/lookup_hosts.c
+index 9d689ff..407cf31 100644
+--- a/modules/lookup_hosts.c
++++ b/modules/lookup_hosts.c
+@@ -214,7 +214,7 @@ next:
+ goto cont;
+
+ debug(ap->logopt, MODPREFIX
+- "attempt to update exports for exports for %s", me->key);
++ "attempt to update exports for %s", me->key);
+
+ master_source_current_wait(ap->entry);
+ ap->entry->current = source;
diff --git a/autofs-5.1.0-init-qdn-before-use.patch b/autofs-5.1.0-init-qdn-before-use.patch
new file mode 100644
index 0000000..a084dcf
--- /dev/null
+++ b/autofs-5.1.0-init-qdn-before-use.patch
@@ -0,0 +1,35 @@
+autofs-5.1.0 - init qdn before use in get_query_dn()
+
+From: Ian Kent <ikent at redhat.com>
+
+Ensure qdn is initialized before use in case there's garbage in it.
+---
+ CHANGELOG | 1 +
+ modules/lookup_ldap.c | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 9e2dc89..7c0a7bb 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -34,6 +34,7 @@
+ - gaurd against incorrect umount return.
+ - update man page autofs(8) for systemd.
+ - fix fix master map type check.
++- init qdn before use in get_query_dn().
+
+ 04/06/2014 autofs-5.1.0
+ =======================
+diff --git a/modules/lookup_ldap.c b/modules/lookup_ldap.c
+index ac2ef30..5da613e 100644
+--- a/modules/lookup_ldap.c
++++ b/modules/lookup_ldap.c
+@@ -335,7 +335,7 @@ LDAP *init_ldap_connection(unsigned logopt, const char *uri, struct lookup_conte
+ static int get_query_dn(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt, const char *class, const char *key)
+ {
+ char buf[MAX_ERR_BUF];
+- char *query, *dn, *qdn;
++ char *query, *dn, *qdn = NULL;
+ LDAPMessage *result = NULL, *e;
+ char *attrs[2];
+ struct berval **value;
diff --git a/autofs.spec b/autofs.spec
index b401797..96457e5 100644
--- a/autofs.spec
+++ b/autofs.spec
@@ -8,7 +8,7 @@
Summary: A tool for automatically mounting and unmounting filesystems
Name: autofs
Version: 5.1.0
-Release: 8%{?dist}
+Release: 9%{?dist}
Epoch: 1
License: GPLv2+
Group: System Environment/Daemons
@@ -47,6 +47,9 @@ Patch31: autofs-5.1.0-clarify-multiple-mounts-description.patch
Patch32: autofs-5.1.0-gaurd-against-incorrect-umount-return.patch
Patch33: autofs-5.1.0-update-man-page-autofs-8-for-systemd.patch
Patch34: autofs-5.1.0-fix-fix-master-map-type-check.patch
+Patch35: autofs-5.1.0-init-qdn-before-use.patch
+Patch36: autofs-5.1.0-fix-typo-in-update_hosts_mounts.patch
+Patch37: autofs-5.1.0-fix-hosts-map-update-on-reload.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if %{with_systemd}
BuildRequires: systemd-units
@@ -169,6 +172,7 @@ install -m 644 redhat/autofs.service $RPM_BUILD_ROOT%{unitdir}/autofs.service
install -m 755 redhat/autofs.init $RPM_BUILD_ROOT%{_initrddir}/autofs
%define init_file_name /etc/rc.d/init.d/autofs
%endif
+install -m 644 redhat/autofs.conf $RPM_BUILD_ROOT/etc/autofs.conf
install -m 644 redhat/autofs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/autofs
%clean
@@ -229,6 +233,13 @@ fi
%dir /etc/auto.master.d
%changelog
+* Tue Nov 18 2014 Ian Kent <ikent at redhat.com> - 1:5.1.0-9
+- fix custom autofs.conf not being installed.
+- init qdn before use in get_query_dn().
+- fix typo in update_hosts_mounts().
+- fix hosts map update on reload.
+
+
* Fri Oct 17 2014 Ian Kent <ikent at redhat.com> - 1:5.1.0-8
- fix fix master map type check.
More information about the scm-commits
mailing list