|
@@ -931,7 +931,12 @@ void svc_close_xprt(struct svc_xprt *xprt)
|
|
|
if (test_and_set_bit(XPT_BUSY, &xprt->xpt_flags))
|
|
|
/* someone else will have to effect the close */
|
|
|
return;
|
|
|
-
|
|
|
+ /*
|
|
|
+ * We expect svc_close_xprt() to work even when no threads are
|
|
|
+ * running (e.g., while configuring the server before starting
|
|
|
+ * any threads), so if the transport isn't busy, we delete
|
|
|
+ * it ourself:
|
|
|
+ */
|
|
|
svc_delete_xprt(xprt);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(svc_close_xprt);
|