Bläddra i källkod

nfs41: sunrpc: add a struct svc_xprt pointer to struct svc_serv for backchannel use

This svc_xprt is passed on to the callback service thread to be later used
to processes incoming svc_rqst's

Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Andy Adamson 16 år sedan
förälder
incheckning
9c9f3f5fa6
2 ändrade filer med 5 tillägg och 0 borttagningar
  1. 1 0
      include/linux/sunrpc/svc.h
  2. 4 0
      net/sunrpc/svc.c

+ 1 - 0
include/linux/sunrpc/svc.h

@@ -103,6 +103,7 @@ struct svc_serv {
 	spinlock_t		sv_cb_lock;	/* protects the svc_cb_list */
 	spinlock_t		sv_cb_lock;	/* protects the svc_cb_list */
 	wait_queue_head_t	sv_cb_waitq;	/* sleep here if there are no
 	wait_queue_head_t	sv_cb_waitq;	/* sleep here if there are no
 						 * entries in the svc_cb_list */
 						 * entries in the svc_cb_list */
+	struct svc_xprt		*bc_xprt;
 #endif /* CONFIG_NFS_V4_1 */
 #endif /* CONFIG_NFS_V4_1 */
 };
 };
 
 

+ 4 - 0
net/sunrpc/svc.c

@@ -487,6 +487,10 @@ svc_destroy(struct svc_serv *serv)
 	if (svc_serv_is_pooled(serv))
 	if (svc_serv_is_pooled(serv))
 		svc_pool_map_put();
 		svc_pool_map_put();
 
 
+#if defined(CONFIG_NFS_V4_1)
+	svc_sock_destroy(serv->bc_xprt);
+#endif /* CONFIG_NFS_V4_1 */
+
 	svc_unregister(serv);
 	svc_unregister(serv);
 	kfree(serv->sv_pools);
 	kfree(serv->sv_pools);
 	kfree(serv);
 	kfree(serv);