From 02ce7ac156c662132151d509930f748a784e4796 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: May 27 2013 07:02:13 +0000 Subject: - dont prode rdma mounts. --- diff --git a/autofs-5.0.7-dont-prode-rdma-mounts.patch b/autofs-5.0.7-dont-prode-rdma-mounts.patch new file mode 100644 index 0000000..4635543 --- /dev/null +++ b/autofs-5.0.7-dont-prode-rdma-mounts.patch @@ -0,0 +1,68 @@ +autofs-5.0.7 - dont prode rdma mounts + +From: Ian Kent + +Since the change to pass text nfs mount options drectly to the kernel all autofs +mount requests now probe server availability. This was because of long delays +mounting from servers that aren't responding. + +This caused mounts requesting the rdma protocol to fail if udp or tcp was also +not available from the server. + +Since, AFAICT the rmda protocol can't be used with RPC fromn userspace, the only +way to work around it is to not probe servers when rdma is requested. +--- + CHANGELOG | 1 + + modules/mount_nfs.c | 13 ++++++++++++- + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 50e83d7..f9bc987 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -44,6 +44,7 @@ + - document allowed map sources in auto.master. + - add enable sloppy mount option to configure. + - fix interface address null check. ++- dont prode rdma mounts. + + 25/07/2012 autofs-5.0.7 + ======================= +diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c +index e61320b..5424d74 100644 +--- a/modules/mount_nfs.c ++++ b/modules/mount_nfs.c +@@ -71,6 +71,7 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int + int nosymlink = 0; + int port = -1; + int ro = 0; /* Set if mount bind should be read-only */ ++ int rdma = 0; + + if (ap->flags & MOUNT_FLAG_REMOUNT) + return 0; +@@ -124,6 +125,11 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int + end--; + + o_len = end - cp + 1; ++ ++ if (strncmp("proto=rdma", cp, o_len) == 0 || ++ strncmp("rdma", cp, o_len) == 0) ++ rdma = 1; ++ + if (strncmp("nosymlink", cp, o_len) == 0) { + warn(ap->logopt, MODPREFIX + "the \"nosymlink\" option is depricated " +@@ -170,7 +176,12 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int + info(ap->logopt, MODPREFIX "no hosts available"); + return 1; + } +- prune_host_list(ap->logopt, &hosts, vers, port); ++ /* ++ * We can't probe protocol rdma so leave it to mount.nfs(8) ++ * and and suffer the delay if a server isn't available. ++ */ ++ if (!rdma) ++ prune_host_list(ap->logopt, &hosts, vers, port); + + if (!hosts) { + info(ap->logopt, MODPREFIX "no hosts available"); diff --git a/autofs.spec b/autofs.spec index d89ec70..685e07c 100644 --- a/autofs.spec +++ b/autofs.spec @@ -8,7 +8,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs Version: 5.0.7 -Release: 17%{?dist} +Release: 18%{?dist} Epoch: 1 License: GPLv2+ Group: System Environment/Daemons @@ -61,6 +61,7 @@ Patch45: autofs-5.0.7-make-dump-maps-check-for-duplicate-indirect-mounts.patch Patch46: autofs-5.0.7-document-allowed-map-sources-in-auto_master.patch Patch47: autofs-5.0.7-add-enable-sloppy-mount-option-to-configure.patch Patch48: autofs-5.0.7-fix-interface-address-null-check.patch +Patch49: autofs-5.0.7-dont-prode-rdma-mounts.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if %{with_systemd} BuildRequires: systemd-units @@ -166,6 +167,7 @@ echo %{version}-%{release} > .version %patch46 -p1 %patch47 -p1 %patch48 -p1 +%patch49 -p1 %build #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir} @@ -257,6 +259,9 @@ fi %dir /etc/auto.master.d %changelog +* Mon May 27 2013 Ian Kent - 1:5.0.7-18 +- dont prode rdma mounts. + * Fri May 24 2013 Ian Kent - 1:5.0.7-17 - fix interface address null check.