2015-04-13 12:11:16

by Kinglong Mee

[permalink] [raw]
Subject: [PATCH] mount: Writes signal number to kernel as command line

When mounting nfs with -overs=4,minorversion=2, want getting
nfs mounts with vers=4.2, but got vers=4.0 as,

# mount -t nfs -onfsvers=4,minorversion=2 127.0.0.1:/ /mnt/
# cat /proc/mounts | grep vers
127.0.0.1:/ /mnt nfs4 rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1 0 0

It's caused by mount.nfs writing bad vers to kernel. This patch
lets mount.nfs writing signal number to kernel as command line.

Note: This patch is based on my last patch,
"mount: make sure mounting nfs with v4,vers=4 and nfsvers=4"

Signed-off-by: Kinglong Mee <[email protected]>
---
utils/mount/stropts.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 2ae532e..c8f5a6d 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -737,8 +737,13 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
}

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

if (po_append(options, version_opt) == PO_FAILED) {
errno = EINVAL;
--
2.3.5


2015-04-13 12:53:48

by Benjamin Coddington

[permalink] [raw]
Subject: Re: [PATCH] mount: Writes signal number to kernel as command line

On Mon, 13 Apr 2015, Kinglong Mee wrote:

> When mounting nfs with -overs=4,minorversion=2, want getting
> nfs mounts with vers=4.2, but got vers=4.0 as,
>
> # mount -t nfs -onfsvers=4,minorversion=2 127.0.0.1:/ /mnt/
> # cat /proc/mounts | grep vers
> 127.0.0.1:/ /mnt nfs4 rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1 0 0
>
> It's caused by mount.nfs writing bad vers to kernel. This patch
> lets mount.nfs writing signal number to kernel as command line.
>
> Note: This patch is based on my last patch,
> "mount: make sure mounting nfs with v4,vers=4 and nfsvers=4"
>
> Signed-off-by: Kinglong Mee <[email protected]>

Looks good.

Reviewed-by: Benjamin Coddington <[email protected]>


> ---
> utils/mount/stropts.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 2ae532e..c8f5a6d 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -737,8 +737,13 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> }
>
> if (mi->version.v_mode != V_SPECIFIC) {
> - snprintf(version_opt, sizeof(version_opt) - 1,
> - "vers=%lu.%lu", mi->version.major, mi->version.minor);
> + 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);
>
> if (po_append(options, version_opt) == PO_FAILED) {
> errno = EINVAL;
> --
> 2.3.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2015-05-06 13:37:30

by Kinglong Mee

[permalink] [raw]
Subject: Re: [PATCH] mount: Writes signal number to kernel as command line


On 4/13/2015 8:53 PM, Benjamin Coddington wrote:
> On Mon, 13 Apr 2015, Kinglong Mee wrote:
>
>> When mounting nfs with -overs=4,minorversion=2, want getting
>> nfs mounts with vers=4.2, but got vers=4.0 as,
>>
>> # mount -t nfs -onfsvers=4,minorversion=2 127.0.0.1:/ /mnt/
>> # cat /proc/mounts | grep vers
>> 127.0.0.1:/ /mnt nfs4 rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1 0 0
>>
>> It's caused by mount.nfs writing bad vers to kernel. This patch
>> lets mount.nfs writing signal number to kernel as command line.
>>
>> Note: This patch is based on my last patch,
>> "mount: make sure mounting nfs with v4,vers=4 and nfsvers=4"
>>
>> Signed-off-by: Kinglong Mee <[email protected]>
>
> Looks good.
>
> Reviewed-by: Benjamin Coddington <[email protected]>

Add this one?

thanks,
Kinglong Mee

>> ---
>> utils/mount/stropts.c | 9 +++++++--
>> 1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
>> index 2ae532e..c8f5a6d 100644
>> --- a/utils/mount/stropts.c
>> +++ b/utils/mount/stropts.c
>> @@ -737,8 +737,13 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
>> }
>>
>> if (mi->version.v_mode != V_SPECIFIC) {
>> - snprintf(version_opt, sizeof(version_opt) - 1,
>> - "vers=%lu.%lu", mi->version.major, mi->version.minor);
>> + 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);
>>
>> if (po_append(options, version_opt) == PO_FAILED) {
>> errno = EINVAL;
>> --
>> 2.3.5
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>

2015-05-07 14:14:21

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] mount: Writes signal number to kernel as command line



On 04/13/2015 08:11 AM, Kinglong Mee wrote:
> When mounting nfs with -overs=4,minorversion=2, want getting
> nfs mounts with vers=4.2, but got vers=4.0 as,
>
> # mount -t nfs -onfsvers=4,minorversion=2 127.0.0.1:/ /mnt/
> # cat /proc/mounts | grep vers
> 127.0.0.1:/ /mnt nfs4 rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1 0 0
>
> It's caused by mount.nfs writing bad vers to kernel. This patch
> lets mount.nfs writing signal number to kernel as command line.
>
> Note: This patch is based on my last patch,
> "mount: make sure mounting nfs with v4,vers=4 and nfsvers=4"
>
> Signed-off-by: Kinglong Mee <[email protected]>
Committed...

steved.
> ---
> utils/mount/stropts.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 2ae532e..c8f5a6d 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -737,8 +737,13 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> }
>
> if (mi->version.v_mode != V_SPECIFIC) {
> - snprintf(version_opt, sizeof(version_opt) - 1,
> - "vers=%lu.%lu", mi->version.major, mi->version.minor);
> + 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);
>
> if (po_append(options, version_opt) == PO_FAILED) {
> errno = EINVAL;
>