2017-06-19 15:11:07

by Steve Dickson

[permalink] [raw]
Subject: [PATCH 1/2 V3] mount.nfs: Use default minor version when -t nfs4 is specified

When the nfs4 filesystem specified, the default major
and minor versions should be used.

Signed-off-by: Steve Dickson <[email protected]>
---
utils/mount/stropts.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

v2: Added the NFS_DEFAULT_MAJOR/MINOR defines
v3: Add back the setting of v_mode to V_GENERAL in nfs_set_version()

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index c0266e5..fbea6fb 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -73,6 +73,13 @@
#define NFS_DEF_BG_TIMEOUT_MINUTES (10000u)
#endif

+#ifndef NFS_DEFAULT_MAJOR
+#define NFS_DEFAULT_MAJOR 4
+#endif
+#ifndef NFS_DEFAULT_MINOR
+#define NFS_DEFAULT_MINOR 2
+#endif
+
extern int nfs_mount_data_version;
extern char *progname;
extern int verbose;
@@ -124,8 +131,8 @@ static void nfs_default_version(struct nfsmount_info *mi)
}

#endif /* MOUNT_CONFIG */
- mi->version.major = 4;
- mi->version.minor = 2;
+ mi->version.major = NFS_DEFAULT_MAJOR;
+ mi->version.minor = NFS_DEFAULT_MINOR;
}

/*
@@ -316,7 +323,9 @@ static int nfs_set_version(struct nfsmount_info *mi)
return 0;

if (strncmp(mi->type, "nfs4", 4) == 0) {
- mi->version.major = 4;
+ /* Set to default values */
+ mi->version.major = NFS_DEFAULT_MAJOR;
+ mi->version.minor = NFS_DEFAULT_MINOR;
mi->version.v_mode = V_GENERAL;
}
/*
--
2.9.4



2017-06-19 15:11:08

by Steve Dickson

[permalink] [raw]
Subject: [PATCH 2/2 V3] mount.nfs: Use default minor version when -o v4 is specified

When v4 is specified on the command line the
default minor version needs to be used.

Signed-off-by: Steve Dickson <[email protected]>
---
utils/mount/stropts.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)

v2: Removed pointless check of v_mode in nfs_do_mount_v4()
v3: Correctly set the minor version when set in nfsmount.conf

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index fbea6fb..102aa33 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -119,14 +119,22 @@ static void nfs_default_version(struct nfsmount_info *mi)
if (mi->version.v_mode == V_DEFAULT &&
config_default_vers.v_mode != V_DEFAULT) {
mi->version.major = config_default_vers.major;
- mi->version.minor = config_default_vers.minor;
+ if (config_default_vers.v_mode == V_SPECIFIC)
+ mi->version.minor = config_default_vers.minor;
+ else
+ mi->version.minor = NFS_DEFAULT_MINOR;
return;
}

if (mi->version.v_mode == V_GENERAL) {
if (config_default_vers.v_mode != V_DEFAULT &&
- mi->version.major == config_default_vers.major)
- mi->version.minor = config_default_vers.minor;
+ mi->version.major == config_default_vers.major) {
+ if (config_default_vers.minor)
+ mi->version.minor = config_default_vers.minor;
+ else
+ mi->version.minor = NFS_DEFAULT_MINOR;
+ } else
+ mi->version.minor = NFS_DEFAULT_MINOR;
return;
}

@@ -741,13 +749,9 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
}

if (mi->version.v_mode != V_SPECIFIC) {
- if (mi->version.v_mode == V_GENERAL)
- snprintf(version_opt, sizeof(version_opt) - 1,
- "vers=%lu", mi->version.major);
- else
- snprintf(version_opt, sizeof(version_opt) - 1,
- "vers=%lu.%lu", mi->version.major,
- mi->version.minor);
+ 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;
--
2.9.4


2017-06-19 15:21:15

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH 2/2 V3] mount.nfs: Use default minor version when -o v4 is specified

This is wrong patch... Please disregard... resending...

steved.

On 06/19/2017 11:11 AM, Steve Dickson wrote:
> When v4 is specified on the command line the
> default minor version needs to be used.
>
> Signed-off-by: Steve Dickson <[email protected]>
> ---
> utils/mount/stropts.c | 24 ++++++++++++++----------
> 1 file changed, 14 insertions(+), 10 deletions(-)
>
> v2: Removed pointless check of v_mode in nfs_do_mount_v4()
> v3: Correctly set the minor version when set in nfsmount.conf
>
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index fbea6fb..102aa33 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -119,14 +119,22 @@ static void nfs_default_version(struct nfsmount_info *mi)
> if (mi->version.v_mode == V_DEFAULT &&
> config_default_vers.v_mode != V_DEFAULT) {
> mi->version.major = config_default_vers.major;
> - mi->version.minor = config_default_vers.minor;
> + if (config_default_vers.v_mode == V_SPECIFIC)
> + mi->version.minor = config_default_vers.minor;
> + else
> + mi->version.minor = NFS_DEFAULT_MINOR;
> return;
> }
>
> if (mi->version.v_mode == V_GENERAL) {
> if (config_default_vers.v_mode != V_DEFAULT &&
> - mi->version.major == config_default_vers.major)
> - mi->version.minor = config_default_vers.minor;
> + mi->version.major == config_default_vers.major) {
> + if (config_default_vers.minor)
This is wo
> + mi->version.minor = config_default_vers.minor;
> + else
> + mi->version.minor = NFS_DEFAULT_MINOR;
> + } else
> + mi->version.minor = NFS_DEFAULT_MINOR;
> return;
> }
>
> @@ -741,13 +749,9 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> }
>
> if (mi->version.v_mode != V_SPECIFIC) {
> - if (mi->version.v_mode == V_GENERAL)
> - snprintf(version_opt, sizeof(version_opt) - 1,
> - "vers=%lu", mi->version.major);
> - else
> - snprintf(version_opt, sizeof(version_opt) - 1,
> - "vers=%lu.%lu", mi->version.major,
> - mi->version.minor);
> + 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;
>