Blame autofs-5.0.2-fix-nfs-version-in-get-supported-ver-and-cost.patch
|
Ian Kent |
8e3333 |
diff --git a/modules/replicated.c b/modules/replicated.c
|
|
Ian Kent |
8e3333 |
index de1b40c..0764d4a 100644
|
|
Ian Kent |
8e3333 |
--- a/modules/replicated.c
|
|
Ian Kent |
8e3333 |
+++ b/modules/replicated.c
|
|
Ian Kent |
8e3333 |
@@ -607,12 +607,31 @@ static int get_supported_ver_and_cost(struct host *host, unsigned int version, c
|
|
Ian Kent |
8e3333 |
|
|
Ian Kent |
8e3333 |
parms.pm_prog = NFS_PROGRAM;
|
|
Ian Kent |
8e3333 |
|
|
Ian Kent |
8e3333 |
+ /*
|
|
Ian Kent |
8e3333 |
+ * The version passed in is the version as defined in
|
|
Ian Kent |
8e3333 |
+ * include/replicated.h. However, the version we want to send
|
|
Ian Kent |
8e3333 |
+ * off to the rpc calls should match the program version of NFS.
|
|
Ian Kent |
8e3333 |
+ * So, we do the conversion here.
|
|
Ian Kent |
8e3333 |
+ */
|
|
Ian Kent |
8e3333 |
if (version & UDP_SELECTED_MASK) {
|
|
Ian Kent |
8e3333 |
proto = "udp";
|
|
Ian Kent |
8e3333 |
- vers = (version << 8);
|
|
Ian Kent |
8e3333 |
- } else {
|
|
Ian Kent |
8e3333 |
+ version >>= 8;
|
|
Ian Kent |
8e3333 |
+ } else
|
|
Ian Kent |
8e3333 |
proto = "tcp";
|
|
Ian Kent |
8e3333 |
- vers = version;
|
|
Ian Kent |
8e3333 |
+
|
|
Ian Kent |
8e3333 |
+ switch (version) {
|
|
Ian Kent |
8e3333 |
+ case NFS2_SUPPORTED:
|
|
Ian Kent |
8e3333 |
+ vers = NFS2_VERSION;
|
|
Ian Kent |
8e3333 |
+ break;
|
|
Ian Kent |
8e3333 |
+ case NFS3_SUPPORTED:
|
|
Ian Kent |
8e3333 |
+ vers = NFS3_VERSION;
|
|
Ian Kent |
8e3333 |
+ break;
|
|
Ian Kent |
8e3333 |
+ case NFS4_SUPPORTED:
|
|
Ian Kent |
8e3333 |
+ vers = NFS4_VERSION;
|
|
Ian Kent |
8e3333 |
+ break;
|
|
Ian Kent |
8e3333 |
+ default:
|
|
Ian Kent |
8e3333 |
+ crit(LOGOPT_ANY, "called with invalid version: 0x%x\n", version);
|
|
Ian Kent |
8e3333 |
+ return 0;
|
|
Ian Kent |
8e3333 |
}
|
|
Ian Kent |
8e3333 |
|
|
Ian Kent |
8e3333 |
rpc_info.proto = getprotobyname(proto);
|