commit 845c87b67b7bfd60127e23d1df93a94ceb9d3d18
Author: NeilBrown <neilb@suse.com>
Date:   Wed Jul 26 13:51:51 2017 -0400

    mount: Fix problems with parsing minorversion=
    
    1/ minorversion=0 is not recognized, as errors from
       strtol() are not correctly detected.
    2/ when there is an error in the minorversion= value,
       no message is presented.
    3/ Current code recognizes "minorversion" and sets V_SPECIFIC,
       but then because *cptr == '\0', the v_mode is reset to V_GENERAL.
       This results in minorversion negotiation, which is not wanted.
    
    This patch addresses all of these.
    
    Signed-off-by: NeilBrown <neilb@suse.com>
    Signed-off-by: Steve Dickson <steved@redhat.com>
    (cherry picked from commit 050153ef6a86ff5ab06ef65be36336824a323779)

diff --git a/utils/mount/network.c b/utils/mount/network.c
index b2e4374..b64c526 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -1283,13 +1283,19 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
 	if (!version_val)
 		goto ret_error;
 
-	if (!(version->major = strtol(version_val, &cptr, 10)))
+	version->major = strtol(version_val, &cptr, 10);
+	if (cptr == version_val || (*cptr && *cptr != '.'))
 		goto ret_error;
-
-	if (version->major < 4)
+	if (version->major == 4 && *cptr != '.' &&
+	    (version_val = po_get(options, "minorversion")) != NULL) {
+		version->minor = strtol(version_val, &cptr, 10);
+		i = -1;
+		if (*cptr)
+			goto ret_error;
 		version->v_mode = V_SPECIFIC;
-
-	if (*cptr == '.') {
+	} else if (version->major < 4)
+		version->v_mode = V_SPECIFIC;
+	else if (*cptr == '.') {
 		version_val = ++cptr;
 		if (!(version->minor = strtol(version_val, &cptr, 10)) && cptr == version_val)
 			goto ret_error;
@@ -1303,7 +1309,10 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
 	return 1;
 
 ret_error:
-	if (i <= 2 ) {
+	if (i < 0) {
+		nfs_error(_("%s: parsing error on 'minorversion=' option"),
+			progname);
+	} else if (i <= 2 ) {
 		nfs_error(_("%s: parsing error on 'v' option"),
 			progname);
 	} else if (i == 3 ) {
