* [PATCH 0/1 V2] minorversion= is being ignored
@ 2018-02-27 22:13 Steve Dickson
2018-02-27 22:13 ` [PATCH 1/1 V2] mount.nfs: minorversion setting is being ignored with the -t flag Steve Dickson
0 siblings, 1 reply; 3+ messages in thread
From: Steve Dickson @ 2018-02-27 22:13 UTC (permalink / raw)
To: Linux NFS Mailing list
This patch ensure "mount -t" mounts that have the
minorversion= flag set, the given minor version is used.
There has been some talk about deprecating the
minorversion option which it appears to be fairly
simple in the kernel, but I think would be pretty
difficult in the userland, do to all the per-existing
scripts that used the option.
To make the deprecation possible in the kernel,
code was added to convert minorversion= into
vers=4.x in the string that passed to the kernel
when the kernel is later than v3.4
Steve Dickson (1):
mount.nfs: minorversion setting is being ignored with the -t flag
utils/mount/network.c | 15 ++++++++++-----
utils/mount/stropts.c | 15 +++++++++++++++
2 files changed, 25 insertions(+), 5 deletions(-)
--
2.14.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1 V2] mount.nfs: minorversion setting is being ignored with the -t flag
2018-02-27 22:13 [PATCH 0/1 V2] minorversion= is being ignored Steve Dickson
@ 2018-02-27 22:13 ` Steve Dickson
2018-03-01 18:53 ` Steve Dickson
0 siblings, 1 reply; 3+ messages in thread
From: Steve Dickson @ 2018-02-27 22:13 UTC (permalink / raw)
To: Linux NFS Mailing list
mount -t nfs or mount -t nfs4 and setting minorversion
should set the v4 minor version. This patch adds a few
checks to make sure the minor version is set.
The patch also translate the minorversion= option
to vers=4.x in the arguments passed to the kernel
when the kernel is later then v3.4.
Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mount/network.c | 15 ++++++++++-----
utils/mount/stropts.c | 15 +++++++++++++++
2 files changed, 25 insertions(+), 5 deletions(-)
v1:
Added kernel version check
diff --git a/utils/mount/network.c b/utils/mount/network.c
index 8ab5be8..8d6e4c6 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -1275,8 +1275,8 @@ nfs_nfs_version(char *type, struct mount_options *options, struct nfs_version *v
}
}
- if (!found && strcmp(type, "nfs4") == 0)
- version_val = type + 3;
+ if (!found && strncmp(type, "nfs", 3) == 0)
+ version_val = "4";
else if (!found)
return 1;
else if (i <= 2 ) {
@@ -1308,9 +1308,14 @@ nfs_nfs_version(char *type, struct mount_options *options, struct nfs_version *v
if (!(version->minor = strtol(version_val, &cptr, 10)) && cptr == version_val)
goto ret_error;
version->v_mode = V_SPECIFIC;
- } else if (version->major > 3 && *cptr == '\0')
- version->v_mode = V_GENERAL;
-
+ } else if (version->major > 3 && *cptr == '\0') {
+ version_val = po_get(options, "minorversion");
+ if (version_val != NULL) {
+ version->minor = strtol(version_val, &cptr, 10);
+ version->v_mode = V_SPECIFIC;
+ } else
+ version->v_mode = V_GENERAL;
+ }
if (*cptr != '\0')
goto ret_error;
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 777de39..d1b0708 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -767,6 +767,21 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
mi->version.minor);
#pragma GCC diagnostic warning "-Wformat-nonliteral"
+ if (po_append(options, version_opt) == PO_FAILED) {
+ errno = EINVAL;
+ goto out_fail;
+ }
+ } else if (po_get(options, "minorversion") &&
+ linux_version_code() > MAKE_VERSION(3, 4, 0)) {
+ /*
+ * convert minorversion= into vers=4.x
+ */
+ po_remove_all(options, "minorversion");
+
+ snprintf(version_opt, sizeof(version_opt) - 1,
+ "vers=%lu.%lu", mi->version.major,
+ mi->version.minor);
+
if (po_append(options, version_opt) == PO_FAILED) {
errno = EINVAL;
goto out_fail;
--
2.14.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1 V2] mount.nfs: minorversion setting is being ignored with the -t flag
2018-02-27 22:13 ` [PATCH 1/1 V2] mount.nfs: minorversion setting is being ignored with the -t flag Steve Dickson
@ 2018-03-01 18:53 ` Steve Dickson
0 siblings, 0 replies; 3+ messages in thread
From: Steve Dickson @ 2018-03-01 18:53 UTC (permalink / raw)
To: Linux NFS Mailing list
On 02/27/2018 05:13 PM, Steve Dickson wrote:
> mount -t nfs or mount -t nfs4 and setting minorversion
> should set the v4 minor version. This patch adds a few
> checks to make sure the minor version is set.
>
> The patch also translate the minorversion= option
> to vers=4.x in the arguments passed to the kernel
> when the kernel is later then v3.4.
>
> Signed-off-by: Steve Dickson <steved@redhat.com>
Committed...
steved.
> ---
> utils/mount/network.c | 15 ++++++++++-----
> utils/mount/stropts.c | 15 +++++++++++++++
> 2 files changed, 25 insertions(+), 5 deletions(-)
>
> v1:
> Added kernel version check
>
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index 8ab5be8..8d6e4c6 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -1275,8 +1275,8 @@ nfs_nfs_version(char *type, struct mount_options *options, struct nfs_version *v
> }
> }
>
> - if (!found && strcmp(type, "nfs4") == 0)
> - version_val = type + 3;
> + if (!found && strncmp(type, "nfs", 3) == 0)
> + version_val = "4";
> else if (!found)
> return 1;
> else if (i <= 2 ) {
> @@ -1308,9 +1308,14 @@ nfs_nfs_version(char *type, struct mount_options *options, struct nfs_version *v
> if (!(version->minor = strtol(version_val, &cptr, 10)) && cptr == version_val)
> goto ret_error;
> version->v_mode = V_SPECIFIC;
> - } else if (version->major > 3 && *cptr == '\0')
> - version->v_mode = V_GENERAL;
> -
> + } else if (version->major > 3 && *cptr == '\0') {
> + version_val = po_get(options, "minorversion");
> + if (version_val != NULL) {
> + version->minor = strtol(version_val, &cptr, 10);
> + version->v_mode = V_SPECIFIC;
> + } else
> + version->v_mode = V_GENERAL;
> + }
> if (*cptr != '\0')
> goto ret_error;
>
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 777de39..d1b0708 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -767,6 +767,21 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> mi->version.minor);
> #pragma GCC diagnostic warning "-Wformat-nonliteral"
>
> + if (po_append(options, version_opt) == PO_FAILED) {
> + errno = EINVAL;
> + goto out_fail;
> + }
> + } else if (po_get(options, "minorversion") &&
> + linux_version_code() > MAKE_VERSION(3, 4, 0)) {
> + /*
> + * convert minorversion= into vers=4.x
> + */
> + po_remove_all(options, "minorversion");
> +
> + snprintf(version_opt, sizeof(version_opt) - 1,
> + "vers=%lu.%lu", mi->version.major,
> + mi->version.minor);
> +
> if (po_append(options, version_opt) == PO_FAILED) {
> errno = EINVAL;
> goto out_fail;
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-03-01 18:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-27 22:13 [PATCH 0/1 V2] minorversion= is being ignored Steve Dickson
2018-02-27 22:13 ` [PATCH 1/1 V2] mount.nfs: minorversion setting is being ignored with the -t flag Steve Dickson
2018-03-01 18:53 ` Steve Dickson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.