diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2009-09-14 13:55:36 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2009-09-14 13:55:36 -0400 |
commit | 74badf6f30f7aea95e9d784244488084dbadcb55 (patch) | |
tree | b9b51f825d68acfbfc16e1cc789c096a9a00d203 /utils/mount/network.c | |
parent | b2a3cd590442309d40e9dd6d43213445df250694 (diff) | |
download | nfs-utils-74badf6f30f7aea95e9d784244488084dbadcb55.tar.gz nfs-utils-74badf6f30f7aea95e9d784244488084dbadcb55.tar.xz nfs-utils-74badf6f30f7aea95e9d784244488084dbadcb55.zip |
mount.nfs: Support "-t nfs,vers=4" mounts in the kernel
Support "vers=4" in nfs_nfs_version()
Skip UMNT call for "-t nfs -o vers=4" mounts
For "-t nfs -o vers=4" mounts, we want to skip v2/v3
version/transport negotiation, but be sure to append
the "clientaddr" option.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Tested-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/mount/network.c')
-rw-r--r-- | utils/mount/network.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/utils/mount/network.c b/utils/mount/network.c index f6fa5fd..bd621be 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -90,6 +90,7 @@ static const char *nfs_transport_opttbl[] = { static const char *nfs_version_opttbl[] = { "v2", "v3", + "v4", "vers", "nfsvers", NULL, @@ -1203,7 +1204,7 @@ nfs_nfs_program(struct mount_options *options, unsigned long *program) * Returns TRUE if @version contains a valid value for this option, * or FALSE if the option was specified with an invalid value. */ -static int +int nfs_nfs_version(struct mount_options *options, unsigned long *version) { long tmp; @@ -1215,10 +1216,13 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version) case 1: /* v3 */ *version = 3; return 1; - case 2: /* vers */ + case 2: /* v4 */ + *version = 4; + return 1; + case 3: /* vers */ switch (po_get_numeric(options, "vers", &tmp)) { case PO_FOUND: - if (tmp >= 2 && tmp <= 3) { + if (tmp >= 2 && tmp <= 4) { *version = tmp; return 1; } @@ -1229,10 +1233,10 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version) case PO_BAD_VALUE: return 0; } - case 3: /* nfsvers */ + case 4: /* nfsvers */ switch (po_get_numeric(options, "nfsvers", &tmp)) { case PO_FOUND: - if (tmp >= 2 && tmp <= 3) { + if (tmp >= 2 && tmp <= 4) { *version = tmp; return 1; } |