Skip to contentSkip to conversation

Stop call_decode() from ignorning RPC header errrors

PATCH In review Steve Dickson 3 participants 3 messages Aug 20, 2003 – Aug 27, 2003

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Stop call_decode() from ignorning RPC header errrors

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.

net/sunrpc/clnt.c renamed from net/sunrpc/clnt.c.diff +9 -2
@@ -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.
#1 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

" " == 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

#2 lore raw
In reply to Steve Dickson

Hi Steve,

thanks a lot for the patch. It helps.

Quoted 6 lines · Steve Dickson

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.

-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs