@@ -444,6 +444,7 @@ int svc_register(const struct svc_serv *, struct net *, const int,
const unsigned short, const unsigned short);
void svc_wake_up(struct svc_serv *);
+void svc_xprt_dequeue_entry(struct svc_xprt *xprt);
void svc_reserve(struct svc_rqst *rqstp, int space);
void svc_pool_wake_idle_thread(struct svc_pool *pool);
struct svc_pool *svc_pool_for_cpu(struct svc_serv *serv);
@@ -507,6 +507,17 @@ static struct svc_xprt *svc_xprt_dequeue(struct svc_pool *pool)
return xprt;
}
+void svc_xprt_dequeue_entry(struct svc_xprt *xprt)
+{
+ struct svc_pool *pool;
+
+ pool = svc_pool_for_cpu(xprt->xpt_server);
+
+ WARN_ON_ONCE(pool->sp_xprts.ready);
+ llist_del_entry(&pool->sp_xprts.new, &xprt->xpt_ready.node);
+}
+EXPORT_SYMBOL_GPL(svc_xprt_dequeue_entry);
+
/**
* svc_reserve - change the space reserved for the reply to a request.
* @rqstp: The request in question
nfsd needs to be able to remove a particular entry from its list of transports. Suggested-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Olga Kornievskaia <okorniev@redhat.com> --- include/linux/sunrpc/svc.h | 1 + net/sunrpc/svc_xprt.c | 11 +++++++++++ 2 files changed, 12 insertions(+)