svcrpc: assume svc_delete_xprt() called only once
authorJ. Bruce Fields <bfields@redhat.com>
Sat, 23 Oct 2010 15:16:10 +0000 (11:16 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 25 Oct 2010 21:59:32 +0000 (17:59 -0400)
As long as DEAD exports are left BUSY, and svc_delete_xprt is called
only with BUSY held, then svc_delete_xprt() will never be called on an
xprt that is already DEAD.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/svc_xprt.c

index 1b0673c6e98630cbfd6b372225772da97ebaee22..c65a47218290176571999617cf4d1a3dad1239d9 100644 (file)
@@ -903,7 +903,7 @@ void svc_delete_xprt(struct svc_xprt *xprt)
 
        /* Only do this once */
        if (test_and_set_bit(XPT_DEAD, &xprt->xpt_flags))
-               return;
+               BUG();
 
        dprintk("svc: svc_delete_xprt(%p)\n", xprt);
        xprt->xpt_ops->xpo_detach(xprt);