snmp6: remove IPSTATS_MIB_CSUMERRORS
[firefly-linux-kernel-4.4.55.git] / net / sunrpc / backchannel_rqst.c
index a9c0bbccad6bfb787b4ff1630a1eb7a28918e634..890a29912d5ab3f39d156891d4844ede04d367e8 100644 (file)
@@ -59,7 +59,7 @@ static void xprt_free_allocation(struct rpc_rqst *req)
        struct xdr_buf *xbufp;
 
        dprintk("RPC:        free allocations for req= %p\n", req);
-       BUG_ON(test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state));
+       WARN_ON_ONCE(test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state));
        xbufp = &req->rq_private_buf;
        free_page((unsigned long)xbufp->head[0].iov_base);
        xbufp = &req->rq_snd_buf;
@@ -191,7 +191,9 @@ void xprt_destroy_backchannel(struct rpc_xprt *xprt, unsigned int max_reqs)
 
        dprintk("RPC:        destroy backchannel transport\n");
 
-       BUG_ON(max_reqs == 0);
+       if (max_reqs == 0)
+               goto out;
+
        spin_lock_bh(&xprt->bc_pa_lock);
        xprt_dec_alloc_count(xprt, max_reqs);
        list_for_each_entry_safe(req, tmp, &xprt->bc_pa_list, rq_bc_pa_list) {
@@ -202,6 +204,7 @@ void xprt_destroy_backchannel(struct rpc_xprt *xprt, unsigned int max_reqs)
        }
        spin_unlock_bh(&xprt->bc_pa_lock);
 
+out:
        dprintk("RPC:        backchannel list empty= %s\n",
                list_empty(&xprt->bc_pa_list) ? "true" : "false");
 }
@@ -255,7 +258,7 @@ void xprt_free_bc_request(struct rpc_rqst *req)
        dprintk("RPC:       free backchannel req=%p\n", req);
 
        smp_mb__before_clear_bit();
-       BUG_ON(!test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state));
+       WARN_ON_ONCE(!test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state));
        clear_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state);
        smp_mb__after_clear_bit();