summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/svc_xprt.c
diff options
context:
space:
mode:
authorWeston Andros Adamson2012-10-23 16:43:40 +0200
committerTrond Myklebust2012-11-04 20:43:41 +0100
commitff1fdb9b805fc03fb51c7b061604360af92d0c9e (patch)
tree00d4cab63ed27a3523fc9c458ad61ec0a51ed3c8 /net/sunrpc/svc_xprt.c
parentSUNRPC: remove BUG_ONs from *_reclassify_socket* (diff)
downloadkernel-qcow2-linux-ff1fdb9b805fc03fb51c7b061604360af92d0c9e.tar.gz
kernel-qcow2-linux-ff1fdb9b805fc03fb51c7b061604360af92d0c9e.tar.xz
kernel-qcow2-linux-ff1fdb9b805fc03fb51c7b061604360af92d0c9e.zip
SUNRPC: remove BUG_ON in svc_xprt_received
Replace BUG_ON() with a WARN_ON_ONCE() and early return. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/svc_xprt.c')
-rw-r--r--net/sunrpc/svc_xprt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 194d865fae72..be89bb67f0ae 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -218,7 +218,9 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
*/
static void svc_xprt_received(struct svc_xprt *xprt)
{
- BUG_ON(!test_bit(XPT_BUSY, &xprt->xpt_flags));
+ WARN_ON_ONCE(!test_bit(XPT_BUSY, &xprt->xpt_flags));
+ if (!test_bit(XPT_BUSY, &xprt->xpt_flags))
+ return;
/* As soon as we clear busy, the xprt could be closed and
* 'put', so we need a reference to call svc_xprt_enqueue with:
*/