Replace BUG_ON() with WARN_ON_ONCE() and if the error condition is true attempt to gracefully recover by calling rpc_exit(). Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxx> --- net/sunrpc/clnt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index fe8a133..76d1730 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -1661,7 +1661,11 @@ call_transmit(struct rpc_task *task) task->tk_action = call_transmit_status; /* Encode here so that rpcsec_gss can use correct sequence number. */ if (rpc_task_need_encode(task)) { - BUG_ON(task->tk_rqstp->rq_bytes_sent != 0); + WARN_ON(task->tk_rqstp->rq_bytes_sent != 0); + if (task->tk_rqstp->rq_bytes_sent != 0) { + rpc_exit(task, -EINVAL); + return; + } rpc_xdr_encode(task); /* Did the encode result in an error condition? */ if (task->tk_status != 0) { -- 1.7.9.6 (Apple Git-31.1) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html