2003-08-20 17:34:24

by Steve Dickson

[permalink] [raw]
Subject: [NFS] [PATCH] Stop call_decode() from ignorning RPC header errrors

--- linux-2.4.21/net/sunrpc/clnt.c.diff 2003-08-18 11:11:22.000000000 -0400
+++ linux-2.4.21/net/sunrpc/clnt.c 2003-08-20 12:13:02.000000000 -0400
@@ -784,9 +784,16 @@ call_decode(struct rpc_task *task)
__FUNCTION__);

/* Verify the RPC header */
- if (!(p = call_verify(task)))
+ if (!(p = call_verify(task))) {
+ /*
+ * When call_verfiy sets tk_action to NULL (via task_exit)
+ * a non-retry-able error has occurred (like the server
+ * not supporting a particular procedure call).
+ */
+ if (task->tk_action == NULL)
+ return;
goto out_retry;
-
+ }
/*
* The following is an NFS-specific hack to cater for setuid
* processes whose uid is mapped to nobody on the server.


Attachments:
linux-2.4.21-sunrpc-calldecode.patch (703.00 B)

2003-08-20 19:09:54

by Trond Myklebust

[permalink] [raw]
Subject: Re: [NFS] [PATCH] Stop call_decode() from ignorning RPC header errrors

>>>>> " " == Steve Dickson <[email protected]> writes:

> This patch stop call_decode() from ignoring errors that are
> found while parsing the RPC header. I turns out the nfs acls
> routines need these error codes to do the right thing...

Duh... Yeah... That is broken in 2.4.22-rc2, and it's not only the NFS
ACLs that will break.

Marcelo, could you please apply?

Cheers,
Trond

2003-08-27 11:08:36

by Andreas Gruenbacher

[permalink] [raw]
Subject: Re: [Acl-Devel] [NFS] [PATCH] Stop call_decode() from ignorning RPC header errrors

Hi Steve,

thanks a lot for the patch. It helps.


On Wed, 2003-08-20 at 19:34, Steve Dickson wrote:
> This patch stop call_decode() from ignoring errors
> that are found while parsing the RPC header. I turns
> out the nfs acls routines need these error codes to do
> the right thing...
>
> SteveD.