2008-12-04 18:50:25

by Andy Adamson

[permalink] [raw]
Subject: Re: [PATCH 1/1] NFS: map nfs_probe_fsinfo errors

On Thu, Dec 4, 2008 at 12:21 PM, Trond Myklebust
<[email protected]> wrote:
> On Thu, 2008-12-04 at 12:16 -0500, Trond Myklebust wrote:
>> On Thu, 2008-12-04 at 12:09 -0500, [email protected] wrote:
>> > From: Andy Adamson <[email protected]>
>> >
>> > Callers of nfs_probe_fsinfo return ERR_PTR errors. NFSv4 errors need to be
>> > mapped.
>> >
>> > Signed-off-by: Andy Adamson <[email protected]>
>> > ---
>> > fs/nfs/client.c | 2 +-
>> > 1 files changed, 1 insertions(+), 1 deletions(-)
>> >
>> > diff --git a/fs/nfs/client.c b/fs/nfs/client.c
>> > index 7547600..e12495c 100644
>> > --- a/fs/nfs/client.c
>> > +++ b/fs/nfs/client.c
>> > @@ -817,7 +817,7 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str
>> >
>> > out_error:
>> > dprintk("nfs_probe_fsinfo: error = %d\n", -error);
>> > - return error;
>> > + return nfs4_map_errors(error);
>> > }
>> >
>> > /*
>>
>> No. This is still in generic code that is also called by both NFSv2 and
>> v3. We should _never_ be passing NFSv4 errors this far up the stack.

Sorry it took so long.
I think I finally see your point. I'll map the errors in nfs4_proc_fsinfo.

>
> ...besides, exactly which NFSv4 specific errors are supposed to be
> leaking here? I'm not aware of any v4-specific errors that may be
> returned by fsinfo.

fsinfo is a PUTFH and a GETATTR.

v4.0 specific errors:
NFS4ERR_SERVERFAULT, NFS4ERR_FHEXPIRED, NFS4ERR_MOVED,
NFS4ERR_RESOURCE, NFS4ERR_WRONGSEC

and the one that I saw when I tried to mount a v4.0 server with a v4.1
client which caused a segfault.

NFS4ERR_MINOR_VERS_MISMATCH.

v4.1 adds all the session related errors.

-->Andy
> --
> Trond Myklebust
> Linux NFS client maintainer
>
> NetApp
> [email protected]
> http://www.netapp.com
> --
> 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
>