SUNRPC: remove BUG_ONs checking RPC_IS_QUEUED
authorWeston Andros Adamson <dros@netapp.com>
Tue, 23 Oct 2012 14:43:47 +0000 (10:43 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 4 Nov 2012 19:43:42 +0000 (14:43 -0500)
Replace two BUG_ON() calls with WARN_ON_ONCE() and early returns.

Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/sched.c

index e6db496..6904917 100644 (file)
@@ -133,7 +133,9 @@ static void __rpc_add_wait_queue(struct rpc_wait_queue *queue,
                struct rpc_task *task,
                unsigned char queue_priority)
 {
-       BUG_ON (RPC_IS_QUEUED(task));
+       WARN_ON_ONCE(RPC_IS_QUEUED(task));
+       if (RPC_IS_QUEUED(task))
+               return;
 
        if (RPC_IS_PRIORITY(queue))
                __rpc_add_wait_queue_priority(queue, task, queue_priority);
@@ -707,7 +709,9 @@ static void __rpc_execute(struct rpc_task *task)
        dprintk("RPC: %5u __rpc_execute flags=0x%x\n",
                        task->tk_pid, task->tk_flags);
 
-       BUG_ON(RPC_IS_QUEUED(task));
+       WARN_ON_ONCE(RPC_IS_QUEUED(task));
+       if (RPC_IS_QUEUED(task))
+               return;
 
        for (;;) {
                void (*do_action)(struct rpc_task *);