2011-02-10 04:58:17

by Herbert Poetzl

[permalink] [raw]
Subject: nfsd: non-standard errno: 925302784


Hi Trond!

I'm seeing _a_lot_ of those messages on one of my
test servers (probably caused by a client doing an
rsync -aX to an nfs mount), so I added a rate limit
and a stack trace which results in those traces:

(0x37270000 looks strange for an errno)

Any ideas how to fix that properly?

Thanks in Advance,
Herbert


[89066.666981] nfsd: non-standard errno: 925302784
[89066.666984] Pid: 5233, comm: nfsd Tainted: G A 2.6.38-rc3 #8
[89066.666986] Call Trace:
[89066.666994] [<ffffffffa02cb118>] ? nfserrno+0x68/0x80 [nfsd]
[89066.666999] [<ffffffffa02dcb77>] ? nfsd4_decode_fattr+0x537/0x9c0 [nfsd]
[89066.667005] [<ffffffffa02dd034>] ? nfsd4_decode_setattr+0x34/0x40 [nfsd]
[89066.667010] [<ffffffffa02dc102>] ? nfs4svc_decode_compoundargs+0x2c2/0x3c0 [nfsd]
[89066.667014] [<ffffffffa02c936f>] ? nfsd_dispatch+0x7f/0x240 [nfsd]
[89066.667025] [<ffffffffa01beb49>] ? svc_process+0x479/0x7a0 [sunrpc]
[89066.667029] [<ffffffffa02c9a20>] ? nfsd+0x0/0x140 [nfsd]
[89066.667033] [<ffffffffa02c9acf>] ? nfsd+0xaf/0x140 [nfsd]
[89066.667037] [<ffffffff810672c6>] ? kthread+0x96/0xa0
[89066.667040] [<ffffffff810038d4>] ? kernel_thread_helper+0x4/0x10
[89066.667042] [<ffffffff81067230>] ? kthread+0x0/0xa0
[89066.667044] [<ffffffff810038d0>] ? kernel_thread_helper+0x0/0x10

[89066.669233] nfsd: non-standard errno: 925302784
[89066.669237] Pid: 5233, comm: nfsd Tainted: G A 2.6.38-rc3 #8
[89066.669238] Call Trace:
[89066.669248] [<ffffffffa02cb118>] ? nfserrno+0x68/0x80 [nfsd]
[89066.669253] [<ffffffffa02dcb77>] ? nfsd4_decode_fattr+0x537/0x9c0 [nfsd]
[89066.669258] [<ffffffffa02dd034>] ? nfsd4_decode_setattr+0x34/0x40 [nfsd]
[89066.669264] [<ffffffffa02dc102>] ? nfs4svc_decode_compoundargs+0x2c2/0x3c0 [nfsd]
[89066.669268] [<ffffffffa02c936f>] ? nfsd_dispatch+0x7f/0x240 [nfsd]
[89066.669280] [<ffffffffa01beb49>] ? svc_process+0x479/0x7a0 [sunrpc]
[89066.669284] [<ffffffffa02c9a20>] ? nfsd+0x0/0x140 [nfsd]
[89066.669288] [<ffffffffa02c9acf>] ? nfsd+0xaf/0x140 [nfsd]
[89066.669291] [<ffffffff810672c6>] ? kthread+0x96/0xa0
[89066.669294] [<ffffffff810038d4>] ? kernel_thread_helper+0x4/0x10
[89066.669297] [<ffffffff81067230>] ? kthread+0x0/0xa0
[89066.669299] [<ffffffff810038d0>] ? kernel_thread_helper+0x0/0x10


2011-02-16 23:34:48

by J. Bruce Fields

[permalink] [raw]
Subject: Re: nfsd: non-standard errno: 925302784

On Wed, Feb 16, 2011 at 01:12:52PM +1100, NeilBrown wrote:
>
> Hi Bruce,
> I think you might have missed this (as it wasn't in your recent pull
> request), so I'm resending it - this time as a proper patch.

Oog, yes, I did miss it, thanks for the reminder. Added a note about
the source of the regression an applied, and I'll pass it along soon.

--b.

>
> NeilBrown
>
> From 32d4cb5580392a2806a1ed5d607ff1d2b49d369e Mon Sep 17 00:00:00 2001
> From: NeilBrown <[email protected]>
> Date: Wed, 16 Feb 2011 13:08:35 +1100
> Subject: [PATCH] nfsd: correctly handle return value from nfsd_map_name_to_*
>
> These functions return an nfs status, not a host_err. So don't
> try to convert before returning.
>
> Reported-by: Herbert Poetzl <[email protected]>
> Signed-off-by: NeilBrown <[email protected]>
> ---
> fs/nfsd/nfs4xdr.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 956629b..1275b86 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -317,8 +317,8 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
> READ_BUF(dummy32);
> len += (XDR_QUADLEN(dummy32) << 2);
> READMEM(buf, dummy32);
> - if ((host_err = nfsd_map_name_to_uid(argp->rqstp, buf, dummy32, &iattr->ia_uid)))
> - goto out_nfserr;
> + if ((status = nfsd_map_name_to_uid(argp->rqstp, buf, dummy32, &iattr->ia_uid)))
> + return status;
> iattr->ia_valid |= ATTR_UID;
> }
> if (bmval[1] & FATTR4_WORD1_OWNER_GROUP) {
> @@ -328,8 +328,8 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
> READ_BUF(dummy32);
> len += (XDR_QUADLEN(dummy32) << 2);
> READMEM(buf, dummy32);
> - if ((host_err = nfsd_map_name_to_gid(argp->rqstp, buf, dummy32, &iattr->ia_gid)))
> - goto out_nfserr;
> + if ((status = nfsd_map_name_to_gid(argp->rqstp, buf, dummy32, &iattr->ia_gid)))
> + return status;
> iattr->ia_valid |= ATTR_GID;
> }
> if (bmval[1] & FATTR4_WORD1_TIME_ACCESS_SET) {
> --
> 1.7.1
>