From 7b3b3aadb2fdc33f345e1e90b1beb37c082032f7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 15 Jun 2012 12:51:29 +0000 Subject: [PATCH] NFS should fail if EINTR is received git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4846 42af7a65-404d-4744-a932-0658087f49c3 --- fs/nfs/rpc_clnt.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/fs/nfs/rpc_clnt.c b/fs/nfs/rpc_clnt.c index ed9550f20a..a530c6c021 100644 --- a/fs/nfs/rpc_clnt.c +++ b/fs/nfs/rpc_clnt.c @@ -157,9 +157,7 @@ static void rpcclnt_fmtheader(FAR struct rpc_call_header *ch, * This is the nfs send routine. * * Returned Value: - * Returns EINTR if the RPC is terminated, 0 otherwise - set - * RPCCALL_MUSTRESEND if the send fails for any reason - do anycleanup - * required by recoverable socket errors. * + * Returns zero on success or a (positive) errno value on failure. * ****************************************************************************/ @@ -256,25 +254,25 @@ static int rpcclnt_reply(FAR struct rpcclnt *rpc, int procid, int prog, * message again. */ - if (error == EAGAIN || error == ETIMEDOUT || error == EINTR) + if (error == EAGAIN || error == ETIMEDOUT) { rpc->rc_callflags |= RPCCALL_MUSTRESEND; } - return error; + return error; } /* Get the xid and check that it is an RPC replysvr */ replyheader = (FAR struct rpc_reply_header *)reply; - rxid = replyheader->rp_xid; + rxid = replyheader->rp_xid; if (replyheader->rp_direction != rpc_reply) { - rpc_statistics(rpcinvalid); fdbg("ERROR: Different RPC REPLY returned\n"); + rpc_statistics(rpcinvalid); rpc->rc_callflags |= RPCCALL_MUSTRESEND; - error = EAGAIN; + error = EPROTO; return error; }