SUNRPC: An ENOMEM error from call_encode is always fatal
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 10 Jun 2008 22:30:11 +0000 (18:30 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 9 Jul 2008 16:08:43 +0000 (12:08 -0400)
The special 'ENOMEM' case that was previously flagged as non-fatal is
bogus: auth_gss always returns EAGAIN for non-fatal errors, and may in fact
return ENOMEM in the special case where xdr_buf_read_netobj runs out of
preallocated buffer space (invariably a _fatal_ error, since there is no
provision for preallocating larger buffers).

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c

index 9503b4c177d23a4e3237fe66f1a263fbbb42db0a..1af4f161cda862d3e8006c438feddfb885fb3e4c 100644 (file)
@@ -888,10 +888,6 @@ call_encode(struct rpc_task *task)
 
        task->tk_status = rpcauth_wrap_req(task, encode, req, p,
                        task->tk_msg.rpc_argp);
-       if (task->tk_status == -ENOMEM) {
-               /* XXX: Is this sane? */
-               task->tk_status = -EAGAIN;
-       }
 }
 
 /*