[NFS] [PATCH] Stop call_decode() from ignorning RPC header errrors

From: Steve Dickson
Date: Wed Aug 20 2003 - 12:43:24 EST


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. --- 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.