Thread (4 messages) 4 messages, 3 authors, 2023-06-13

Re: [PATCH] nfs4: don't map EACCESS and EPERM to EIO

From: Trond Myklebust <hidden>
Date: 2023-06-08 17:53:14

On Thu, 2023-06-08 at 19:42 +0200, Tigran Mkrtchyan wrote:
Hi Trond,

I will check and let you know. What we see is EACCESS on layoutget
reported as EIO to the applications
If this is for a write, then that might just be
nfs_mapping_set_error(). In newer kernels, it tries to avoid sending
errors that are unexpected for strictly POSIX applications.

Cheers
  Trond
Best regards,
Tigran 


On June 8, 2023 5:33:16 PM GMT+02:00, Trond Myklebust
[off-list ref] wrote:
quoted
Hi Tigran,

On Thu, 2023-06-08 at 16:49 +0200, Tigran Mkrtchyan wrote:
quoted
the nfs4_map_errors function converts NFS specific errors to
userland
errors. However, it ignores NFS4ERR_PERM and EPERM, which then
get
mapped to EIO.

Signed-off-by: Tigran Mkrtchyan
[off-list ref] fs/nfs/nfs4proc.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index d3665390c4cb..795205fe4f30 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -171,12 +171,14 @@ static int nfs4_map_errors(int err)
        case -NFS4ERR_LAYOUTTRYLATER:
        case -NFS4ERR_RECALLCONFLICT:
                return -EREMOTEIO;
+       case -NFS4ERR_PERM:
        case -NFS4ERR_WRONGSEC:
        case -NFS4ERR_WRONG_CRED:
                return -EPERM;
        case -NFS4ERR_BADOWNER:
        case -NFS4ERR_BADNAME:
                return -EINVAL;
+       case -NFS4ERR_ACCESS:
        case -NFS4ERR_SHARE_DENIED:
                return -EACCES;
        case -NFS4ERR_MINOR_VERS_MISMATCH:
Hmm... Aren't both these cases covered by the exception at the top
of
the function?

static int nfs4_map_errors(int err)
{
        if (err >= -1000)
                return err;

As I read it, that should mean that err = -NFS4ERR_ACCESS (= -13)
and
err = -NFS4ERR_PERM (= -1) will get returned verbatim.

Are you seeing these NFS4ERR_ACCESS and NFS4ERR_PERM cases hitting
the
default: dprintk() when you turn it on?
-- 
Trond Myklebust 
CTO, Hammerspace Inc 
1900 S Norfolk St, Suite 350 - #45 
San Mateo, CA 94403 
​
www.hammerspace.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help