Comment 3 for bug 1818121

Revision history for this message
Paul Menzel (paulmenzel) wrote :

Thank you for trying to reproduce the issue, and sorry for missing out information. In this case, due to NFS 4.2 issues, we have specified the exact NFS version.

     joey -vers=4.0 claptrap:/amd/claptrap/2/home/edv/joey

Bisecting the fix in autofs 5.1.4, results in the commit aa1f4321 (autofs-5.1.3 - handle additional nfs versions in mount_nfs.c).

commit aa1f432180f3878c303088def8d647f1bd50b10b (refs/bisect/fixed)
Author: Ian Kent <email address hidden>
Date: Thu Oct 19 08:48:44 2017 +0800

    autofs-5.1.3 - handle additional nfs versions in mount_nfs.c

    Since NFSv4 can now have a subversion it needs to be allowed for.

    It's enough to check for an options string starting with "vers=4" or
    "nfsvers=4" because it's used only to set a flag used for special
    casing the availibility probe for any NFS version 4 version.

    Signed-off-by: Ian Kent <email address hidden>

diff --git a/CHANGELOG b/CHANGELOG
index 2da2cdc..3a1e4a6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -35,6 +35,7 @@ xx/xx/2017 autofs-5.1.4
 - make map source reference message debug only.
 - improve description of mount_nfs_default_protocol.
 - the port option should not behave like nobind option.
+- handle additional nfs versions in mount_nfs.c.

 24/05/2017 autofs-5.1.3
 =======================
diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c
index 5245d96..d3ebd92 100644
--- a/modules/mount_nfs.c
+++ b/modules/mount_nfs.c
@@ -147,8 +147,9 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int
                        } else if (_strncmp("use-weight-only", cp, o_len) == 0) {
                                flags |= MOUNT_FLAG_USE_WEIGHT_ONLY;
                        } else {
- if (_strncmp("vers=4", cp, o_len) == 0 ||
- _strncmp("nfsvers=4", cp, o_len) == 0)
+ /* Is any version of NFSv4 in the options */
+ if (_strncmp("vers=4", cp, 6) == 0 ||
+ _strncmp("nfsvers=4", cp, 9) == 0)
                                        vers = NFS4_VERS_MASK | TCP_SUPPORTED;
                                else if (_strncmp("vers=3", cp, o_len) == 0 ||
                                         _strncmp("nfsvers=3", cp, o_len) == 0) {

Reading the commit message and looking at the change, it makes sense, that this fixes the issue. Could you please apply this to the package?