- flock/lockf fixes
- don't use EXT3 constants in llite code (5094)
- return async write errors to application if possible (2248)
+ - don't complete EKC RPC on peer death (4012)
* miscellania
- reorganization of lov code
- single portals codebase
#endif
if (eprc != EP_SUCCESS) {
CERROR("ep_rpc_get failed: %d\n", eprc);
+ /* don't attempt RPC completion */
+ krx->krx_rpc_reply_needed = 0;
rc = -ECONNABORTED;
}
break;
krx->krx_state = KRX_PARSE;
krx->krx_rxd = rxd;
krx->krx_nob = nob;
-#if MULTIRAIL_EKC
- krx->krx_rpc_reply_needed = (status != EP_SHUTDOWN) && ep_rxd_isrpc(rxd);
-#else
- krx->krx_rpc_reply_needed = ep_rxd_isrpc(rxd);
-#endif
+
+ /* RPC reply iff rpc request received without error */
+ krx->krx_rpc_reply_needed = ep_rxd_isrpc(rxd) &&
+ !(status == EP_SUCCESS ||
+ status == EP_MSG_TOO_BIG);
+
/* Default to failure if an RPC reply is requested but not handled */
krx->krx_rpc_reply_status = -EPROTO;
atomic_set (&krx->krx_refcount, 1);