You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.2 KiB
69 lines
2.2 KiB
7 years ago
|
autofs-5.0.7 - dont probe rdma mounts
|
||
|
|
||
|
From: Ian Kent <raven@themaw.net>
|
||
|
|
||
|
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 probe 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");
|