···247247 return xprt;248248}249249250250-/*251251- * svc_xprt_received conditionally queues the transport for processing252252- * by another thread. The caller must hold the XPT_BUSY bit and must250250+/**251251+ * svc_xprt_received - start next receiver thread252252+ * @xprt: controlling transport253253+ *254254+ * The caller must hold the XPT_BUSY bit and must253255 * not thereafter touch transport data.254256 *255257 * Note: XPT_DATA only gets cleared when a read-attempt finds no (or256258 * insufficient) data.257259 */258258-static void svc_xprt_received(struct svc_xprt *xprt)260260+void svc_xprt_received(struct svc_xprt *xprt)259261{260262 if (!test_bit(XPT_BUSY, &xprt->xpt_flags)) {261263 WARN_ONCE(1, "xprt=0x%p already busy!", xprt);262264 return;263265 }266266+267267+ trace_svc_xprt_received(xprt);264268265269 /* As soon as we clear busy, the xprt could be closed and266270 * 'put', so we need a reference to call svc_enqueue_xprt with:···275271 xprt->xpt_server->sv_ops->svo_enqueue_xprt(xprt);276272 svc_xprt_put(xprt);277273}274274+EXPORT_SYMBOL_GPL(svc_xprt_received);278275279276void svc_add_new_perm_xprt(struct svc_serv *serv, struct svc_xprt *new)280277{