[PATCH 2/2] Fix protocol minor version fall-back

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



mount.nfs currently expects mount(2) to fail with EPROTONOSUPPORT if
the kernel doesn't understand the requested NFS version.

Unfortunately if the requested minor is not known to the kernel
it returns -EINVAL.
In kernels since 3.11 this can happen in nfs4_alloc_client(), if
compiled without NFS_V4_2.

More generally it can happen in in nfs_validate_text_mount_data()
when nfs_parse_mount_options() returns 0 because nfs_parse_version_string()
didn't recognise the version.

EPROTONOSUPPORT is only returned if NFSv4 support is completely compiled out.

So nfs_autonegotiate needs to check for EINVAL as well as EPROTONOSUPPORT.

URL: https://bugzilla.opensuse.org/show_bug.cgi?id=959211
Reported-by: Takashi Iwai <tiwai@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
---
 utils/mount/stropts.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index c8f5a6d223e7..86829a902bfd 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -841,6 +841,9 @@ check_result:
 	case EPROTONOSUPPORT:
 		/* A clear indication that the server or our
 		 * client does not support NFS version 4 and minor */
+	case EINVAL:
+		/* A less clear indication that our client
+		 * does not support NFSv4 minor version. */
 		if (mi->version.v_mode == V_GENERAL &&
 			mi->version.minor == 0)
 				return result;


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux