2008-02-13 19:55:47

by Chuck Lever III

[permalink] [raw]
Subject: [PATCH] NFS: Allow text-based mounts via compat_sys_mount

The compat_sys_mount() system call throws EINVAL for text-based NFSv4
mounts.

The text-based mount interface assumes that any mount option blob that
doesn't set the version field to "1" is a C string (ie not a legacy
mount request). The compat_sys_mount() call treats blobs that don't
set the version field to "1" as an error. We just relax the check in
compat_sys_mount() a bit to allow C strings to be passed down to the NFSv4
client.

Signed-off-by: Chuck Lever <[email protected]>
---

fs/compat.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/fs/compat.c b/fs/compat.c
index 5216c3f..61388aa 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -702,9 +702,6 @@ static int do_nfs4_super_data_conv(void *raw_data)
real->flags = raw->flags;
real->version = raw->version;
}
- else {
- return -EINVAL;
- }

return 0;
}



2008-02-13 21:32:43

by Trond Myklebust

[permalink] [raw]
Subject: Re: [PATCH] NFS: Allow text-based mounts via compat_sys_mount


On Wed, 2008-02-13 at 14:55 -0500, Chuck Lever wrote:
> The compat_sys_mount() system call throws EINVAL for text-based NFSv4
> mounts.
>
> The text-based mount interface assumes that any mount option blob that
> doesn't set the version field to "1" is a C string (ie not a legacy
> mount request). The compat_sys_mount() call treats blobs that don't
> set the version field to "1" as an error. We just relax the check in
> compat_sys_mount() a bit to allow C strings to be passed down to the NFSv4
> client.
>
> Signed-off-by: Chuck Lever <[email protected]>
> ---
>
> fs/compat.c | 3 ---
> 1 files changed, 0 insertions(+), 3 deletions(-)
>
> diff --git a/fs/compat.c b/fs/compat.c
> index 5216c3f..61388aa 100644
> --- a/fs/compat.c
> +++ b/fs/compat.c
> @@ -702,9 +702,6 @@ static int do_nfs4_super_data_conv(void *raw_data)
> real->flags = raw->flags;
> real->version = raw->version;
> }
> - else {
> - return -EINVAL;
> - }
>
> return 0;
> }

Looks good. Thanks Chuck!

Trond