nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME
Subsystems (2)
PATCH 1/1 nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME
Don't check for -NFS4ERR_NOTSUPP, it's already been mapped to -ENOTSUPP by nfs4_stat_to_errno.
This allows the client to mount v4.1 servers that don't support SECINFO_NO_NAME by falling back to the "guess and check" method of nfs4_find_root_sec.
---
I found this trying to mount a pynfs filelayout server.
fs/nfs/nfs4proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
fs/nfs/nfs4proc.c +2 -2
@@ -7920,7 +7920,7 @@ nfs41_proc_secinfo_no_name(struct nfs_server *server, struct nfs_fh *fhandle,switch (err) {case 0 :case -NFS4ERR_WRONGSEC : -case -NFS4ERR_NOTSUPP : +case -ENOTSUPP : goto out;default : err =nfs4_handle_exception (server, err, &exception);
@@ -7954,7 +7954,7 @@ nfs41_find_root_sec(struct nfs_server *server, struct nfs_fh *fhandle,* Fall back on "guess and check" method if * the server doesn't support SECINFO_NO_NAME */ -if (err == -NFS4ERR_WRONGSEC || err == -NFS4ERR_NOTSUPP ) { +if (err == -NFS4ERR_WRONGSEC || err == -ENOTSUPP ) { err =nfs4_find_root_sec (server, fhandle, info); goto out_freepage; }
Signature · 1 line
1.8.3.4 (Apple Git-47)
Quoted 12 lines · Weston Andros Adamson
Don't check for -NFS4ERR_NOTSUPP, it's already been mapped to
-ENOTSUPPbynfs4_stat_to_errno.This allows the client to mount v4.1 servers that don't support
SECINFO_NO_NAMEby falling back to the "guess and check" method ofnfs4_find_root_sec.Signed-off-by Weston Andros Adamson <[email protected]>---
I found this trying to mount a pynfs filelayout server.
Yes at last BAT Frank fixed Ganesha so it can work with new clients.
Linux client is the standard the rest of the world needs to comply (Resistance is futile ;-) )
Thanks
Boaz
Quoted 26 lines
fs/nfs/nfs4proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)fs/nfs/nfs4proc.c +2
-2@@ -7920,7 +7920,7 @@ nfs41_proc_secinfo_no_name(struct nfs_server *server, struct nfs_fh *fhandle,switch (err) {case 0 :case -NFS4ERR_WRONGSEC : -case -NFS4ERR_NOTSUPP : +case -ENOTSUPP : goto out;default : err =nfs4_handle_exception (server, err, &exception);@@ -7954,7 +7954,7 @@ nfs41_find_root_sec(struct nfs_server *server, struct nfs_fh *fhandle,* Fall back on "guess and check" method if * the server doesn't support SECINFO_NO_NAME */ -if (err == -NFS4ERR_WRONGSEC || err == -NFS4ERR_NOTSUPP ) { +if (err == -NFS4ERR_WRONGSEC || err == -ENOTSUPP ) { err =nfs4_find_root_sec (server, fhandle, info); goto out_freepage; }