When the mountversion option is used, there should
not be any mount negotiations with the server.
Also, when the option is used, its know that the mount
is a v4 mount and a V_SPECFIC type.
Signed-off-by: Steve Dickson <[email protected]>
---
utils/mount/network.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/utils/mount/network.c b/utils/mount/network.c
index b5ed850..ebc39d3 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
"v4",
"vers",
"nfsvers",
+ "minorversion",
NULL,
};
@@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
if (!(version->major = strtol(version_val, &cptr, 10)))
goto ret_error;
- if (version->major < 4)
+ if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
+ version->v_mode = V_SPECIFIC;
+ version->minor = version->major;
+ version->major = 4;
+ } else if (version->major < 4)
version->v_mode = V_SPECIFIC;
if (*cptr == '.') {
--
2.4.3
On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
> When the mountversion option is used, there should
> not be any mount negotiations with the server.
>
> Also, when the option is used, its know that the mount
> is a v4 mount and a V_SPECFIC type.
>
> Signed-off-by: Steve Dickson <[email protected]>
> ---
> utils/mount/network.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index b5ed850..ebc39d3 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
> "v4",
> "vers",
> "nfsvers",
> + "minorversion",
> NULL,
> };
>
> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
> if (!(version->major = strtol(version_val, &cptr, 10)))
> goto ret_error;
>
> - if (version->major < 4)
> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
> + version->v_mode = V_SPECIFIC;
> + version->minor = version->major;
> + version->major = 4;
> + } else if (version->major < 4)
> version->v_mode = V_SPECIFIC;
>
> if (*cptr == '.') {
>
Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
and 'minorversion' in your mount options string?
Cheers
Trond
On 07/06/2015 11:19 AM, Trond Myklebust wrote:
> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>> When the mountversion option is used, there should
>> not be any mount negotiations with the server.
>>
>> Also, when the option is used, its know that the mount
>> is a v4 mount and a V_SPECFIC type.
>>
>> Signed-off-by: Steve Dickson <[email protected]>
>> ---
>> utils/mount/network.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>> index b5ed850..ebc39d3 100644
>> --- a/utils/mount/network.c
>> +++ b/utils/mount/network.c
>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>> "v4",
>> "vers",
>> "nfsvers",
>> + "minorversion",
>> NULL,
>> };
>>
>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>> if (!(version->major = strtol(version_val, &cptr, 10)))
>> goto ret_error;
>>
>> - if (version->major < 4)
>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>> + version->v_mode = V_SPECIFIC;
>> + version->minor = version->major;
>> + version->major = 4;
>> + } else if (version->major < 4)
>> version->v_mode = V_SPECIFIC;
>>
>> if (*cptr == '.') {
>>
>
> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
> and 'minorversion' in your mount options string?
I don't think so... The only combination that does not work
is -o nfsvers=3,minorversion=1 which should fail...
What am I missing?
steved.
On Mon, Jul 6, 2015 at 12:50 PM, Steve Dickson <[email protected]> wrote:
>
>
> On 07/06/2015 11:19 AM, Trond Myklebust wrote:
>> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>>> When the mountversion option is used, there should
>>> not be any mount negotiations with the server.
>>>
>>> Also, when the option is used, its know that the mount
>>> is a v4 mount and a V_SPECFIC type.
>>>
>>> Signed-off-by: Steve Dickson <[email protected]>
>>> ---
>>> utils/mount/network.c | 7 ++++++-
>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>>> index b5ed850..ebc39d3 100644
>>> --- a/utils/mount/network.c
>>> +++ b/utils/mount/network.c
>>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>>> "v4",
>>> "vers",
>>> "nfsvers",
>>> + "minorversion",
>>> NULL,
>>> };
>>>
>>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>>> if (!(version->major = strtol(version_val, &cptr, 10)))
>>> goto ret_error;
>>>
>>> - if (version->major < 4)
>>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>>> + version->v_mode = V_SPECIFIC;
>>> + version->minor = version->major;
>>> + version->major = 4;
>>> + } else if (version->major < 4)
>>> version->v_mode = V_SPECIFIC;
>>>
>>> if (*cptr == '.') {
>>>
>>
>> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
>> and 'minorversion' in your mount options string?
> I don't think so... The only combination that does not work
> is -o nfsvers=3,minorversion=1 which should fail...
>
> What am I missing?
>
Does "-o minorversion=1,nfsvers=3" show the same behaviour?
Cheers
Trond
On 07/06/2015 12:53 PM, Trond Myklebust wrote:
> On Mon, Jul 6, 2015 at 12:50 PM, Steve Dickson <[email protected]> wrote:
>>
>>
>> On 07/06/2015 11:19 AM, Trond Myklebust wrote:
>>> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>>>> When the mountversion option is used, there should
>>>> not be any mount negotiations with the server.
>>>>
>>>> Also, when the option is used, its know that the mount
>>>> is a v4 mount and a V_SPECFIC type.
>>>>
>>>> Signed-off-by: Steve Dickson <[email protected]>
>>>> ---
>>>> utils/mount/network.c | 7 ++++++-
>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>>>> index b5ed850..ebc39d3 100644
>>>> --- a/utils/mount/network.c
>>>> +++ b/utils/mount/network.c
>>>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>>>> "v4",
>>>> "vers",
>>>> "nfsvers",
>>>> + "minorversion",
>>>> NULL,
>>>> };
>>>>
>>>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>>>> if (!(version->major = strtol(version_val, &cptr, 10)))
>>>> goto ret_error;
>>>>
>>>> - if (version->major < 4)
>>>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>>>> + version->v_mode = V_SPECIFIC;
>>>> + version->minor = version->major;
>>>> + version->major = 4;
>>>> + } else if (version->major < 4)
>>>> version->v_mode = V_SPECIFIC;
>>>>
>>>> if (*cptr == '.') {
>>>>
>>>
>>> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
>>> and 'minorversion' in your mount options string?
>> I don't think so... The only combination that does not work
>> is -o nfsvers=3,minorversion=1 which should fail...
>>
>> What am I missing?
>>
>
> Does "-o minorversion=1,nfsvers=3" show the same behaviour?
It does
# mount.nfs -o minorversion=1,nfsvers=3 freddy:/home /mnt/home
mount.nfs: an incorrect mount option was specified
Plus a nice little error message comes out on the console
NFS: mount option vers=3 does not support minorversion=1
And -o minorversion=0,nfsvers=3 works as expected...
steved.
>
> Cheers
> Trond
>
On 7/6/2015 23:19, Trond Myklebust wrote:
> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>> When the mountversion option is used, there should
>> not be any mount negotiations with the server.
>>
>> Also, when the option is used, its know that the mount
>> is a v4 mount and a V_SPECFIC type.
>>
>> Signed-off-by: Steve Dickson <[email protected]>
>> ---
>> utils/mount/network.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>> index b5ed850..ebc39d3 100644
>> --- a/utils/mount/network.c
>> +++ b/utils/mount/network.c
>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>> "v4",
>> "vers",
>> "nfsvers",
>> + "minorversion",
>> NULL,
>> };
>>
>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>> if (!(version->major = strtol(version_val, &cptr, 10)))
>> goto ret_error;
>>
>> - if (version->major < 4)
>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>> + version->v_mode = V_SPECIFIC;
>> + version->minor = version->major;
>> + version->major = 4;
>> + } else if (version->major < 4)
>> version->v_mode = V_SPECIFIC;
>>
>> if (*cptr == '.') {
>>
>
> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
> and 'minorversion' in your mount options string?
Without this patch, there is a dependency on the ordering now.
mount with "-o minorversion=1", nfs gets strings as "minorversion=1,vers=4.2"
If nfs-utils doesn't parse minorversion, the order dependency also exist.
I agree with parsing minorversion in nfs-utils.
thanks,
Kinglong Mee
On Mon, Jul 6, 2015 at 6:21 PM, Kinglong Mee <[email protected]> wrote:
> On 7/6/2015 23:19, Trond Myklebust wrote:
>> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>>> When the mountversion option is used, there should
>>> not be any mount negotiations with the server.
>>>
>>> Also, when the option is used, its know that the mount
>>> is a v4 mount and a V_SPECFIC type.
>>>
>>> Signed-off-by: Steve Dickson <[email protected]>
>>> ---
>>> utils/mount/network.c | 7 ++++++-
>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>>> index b5ed850..ebc39d3 100644
>>> --- a/utils/mount/network.c
>>> +++ b/utils/mount/network.c
>>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>>> "v4",
>>> "vers",
>>> "nfsvers",
>>> + "minorversion",
>>> NULL,
>>> };
>>>
>>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>>> if (!(version->major = strtol(version_val, &cptr, 10)))
>>> goto ret_error;
>>>
>>> - if (version->major < 4)
>>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>>> + version->v_mode = V_SPECIFIC;
>>> + version->minor = version->major;
>>> + version->major = 4;
>>> + } else if (version->major < 4)
>>> version->v_mode = V_SPECIFIC;
>>>
>>> if (*cptr == '.') {
>>>
>>
>> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
>> and 'minorversion' in your mount options string?
>
> Without this patch, there is a dependency on the ordering now.
> mount with "-o minorversion=1", nfs gets strings as "minorversion=1,vers=4.2"
>
> If nfs-utils doesn't parse minorversion, the order dependency also exist.
>
> I agree with parsing minorversion in nfs-utils.
>
I was rather hoping we could get rid of 'minorversion' soon. It is a
wart, and we've already agreed to deprecate it.
Trond
On 07/06/2015 06:29 PM, Trond Myklebust wrote:
> On Mon, Jul 6, 2015 at 6:21 PM, Kinglong Mee <[email protected]> wrote:
>> On 7/6/2015 23:19, Trond Myklebust wrote:
>>> On Mon, Jul 6, 2015 at 10:42 AM, Steve Dickson <[email protected]> wrote:
>>>> When the mountversion option is used, there should
>>>> not be any mount negotiations with the server.
>>>>
>>>> Also, when the option is used, its know that the mount
>>>> is a v4 mount and a V_SPECFIC type.
>>>>
>>>> Signed-off-by: Steve Dickson <[email protected]>
>>>> ---
>>>> utils/mount/network.c | 7 ++++++-
>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/utils/mount/network.c b/utils/mount/network.c
>>>> index b5ed850..ebc39d3 100644
>>>> --- a/utils/mount/network.c
>>>> +++ b/utils/mount/network.c
>>>> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
>>>> "v4",
>>>> "vers",
>>>> "nfsvers",
>>>> + "minorversion",
>>>> NULL,
>>>> };
>>>>
>>>> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
>>>> if (!(version->major = strtol(version_val, &cptr, 10)))
>>>> goto ret_error;
>>>>
>>>> - if (version->major < 4)
>>>> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
>>>> + version->v_mode = V_SPECIFIC;
>>>> + version->minor = version->major;
>>>> + version->major = 4;
>>>> + } else if (version->major < 4)
>>>> version->v_mode = V_SPECIFIC;
>>>>
>>>> if (*cptr == '.') {
>>>>
>>>
>>> Doesn't this cause a dependency on the ordering of 'nfsvers'/'vers'
>>> and 'minorversion' in your mount options string?
>>
>> Without this patch, there is a dependency on the ordering now.
>> mount with "-o minorversion=1", nfs gets strings as "minorversion=1,vers=4.2"
>>
>> If nfs-utils doesn't parse minorversion, the order dependency also exist.
>>
>> I agree with parsing minorversion in nfs-utils.
>>
>
> I was rather hoping we could get rid of 'minorversion' soon. It is a
> wart, and we've already agreed to deprecate it.
I agree with the deprecation, but I think that is a different issue...
steved.
On 07/06/2015 10:42 AM, Steve Dickson wrote:
> When the mountversion option is used, there should
> not be any mount negotiations with the server.
>
> Also, when the option is used, its know that the mount
> is a v4 mount and a V_SPECFIC type.
>
> Signed-off-by: Steve Dickson <[email protected]>
> ---
> utils/mount/network.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
Wow... this slide through the cracks... I still
think its a good idea so with no objection I'm
planning on committing this...
So take solace in the fact it takes awhile for
my own patches to get in! ;-)
steved.
>
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index b5ed850..ebc39d3 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
> "v4",
> "vers",
> "nfsvers",
> + "minorversion",
> NULL,
> };
>
> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
> if (!(version->major = strtol(version_val, &cptr, 10)))
> goto ret_error;
>
> - if (version->major < 4)
> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
> + version->v_mode = V_SPECIFIC;
> + version->minor = version->major;
> + version->major = 4;
> + } else if (version->major < 4)
> version->v_mode = V_SPECIFIC;
>
> if (*cptr == '.') {
>
On 07/06/2015 10:42 AM, Steve Dickson wrote:
> When the mountversion option is used, there should
> not be any mount negotiations with the server.
>
> Also, when the option is used, its know that the mount
> is a v4 mount and a V_SPECFIC type.
>
> Signed-off-by: Steve Dickson <[email protected]>
Committed..
steved.
> ---
> utils/mount/network.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index b5ed850..ebc39d3 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -92,6 +92,7 @@ static const char *nfs_version_opttbl[] = {
> "v4",
> "vers",
> "nfsvers",
> + "minorversion",
> NULL,
> };
>
> @@ -1272,7 +1273,11 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version)
> if (!(version->major = strtol(version_val, &cptr, 10)))
> goto ret_error;
>
> - if (version->major < 4)
> + if (strcmp(nfs_version_opttbl[i], "minorversion") == 0) {
> + version->v_mode = V_SPECIFIC;
> + version->minor = version->major;
> + version->major = 4;
> + } else if (version->major < 4)
> version->v_mode = V_SPECIFIC;
>
> if (*cptr == '.') {
>