|
@@ -43,6 +43,7 @@
|
|
#include <linux/wait.h> /* wait_queue_head_t, etc */
|
|
#include <linux/wait.h> /* wait_queue_head_t, etc */
|
|
#include <linux/spinlock.h> /* spinlock_t, etc */
|
|
#include <linux/spinlock.h> /* spinlock_t, etc */
|
|
#include <linux/atomic.h> /* atomic_t, etc */
|
|
#include <linux/atomic.h> /* atomic_t, etc */
|
|
|
|
+#include <linux/workqueue.h> /* struct work_struct */
|
|
|
|
|
|
#include <rdma/rdma_cm.h> /* RDMA connection api */
|
|
#include <rdma/rdma_cm.h> /* RDMA connection api */
|
|
#include <rdma/ib_verbs.h> /* RDMA verbs api */
|
|
#include <rdma/ib_verbs.h> /* RDMA verbs api */
|
|
@@ -87,6 +88,7 @@ struct rpcrdma_ep {
|
|
struct rpc_xprt *rep_xprt; /* for rep_func */
|
|
struct rpc_xprt *rep_xprt; /* for rep_func */
|
|
struct rdma_conn_param rep_remote_cma;
|
|
struct rdma_conn_param rep_remote_cma;
|
|
struct sockaddr_storage rep_remote_addr;
|
|
struct sockaddr_storage rep_remote_addr;
|
|
|
|
+ struct delayed_work rep_connect_worker;
|
|
};
|
|
};
|
|
|
|
|
|
#define INIT_CQCOUNT(ep) atomic_set(&(ep)->rep_cqcount, (ep)->rep_cqinit)
|
|
#define INIT_CQCOUNT(ep) atomic_set(&(ep)->rep_cqcount, (ep)->rep_cqinit)
|
|
@@ -336,6 +338,7 @@ int rpcrdma_deregister_external(struct rpcrdma_mr_seg *,
|
|
/*
|
|
/*
|
|
* RPC/RDMA connection management calls - xprtrdma/rpc_rdma.c
|
|
* RPC/RDMA connection management calls - xprtrdma/rpc_rdma.c
|
|
*/
|
|
*/
|
|
|
|
+void rpcrdma_connect_worker(struct work_struct *);
|
|
void rpcrdma_conn_func(struct rpcrdma_ep *);
|
|
void rpcrdma_conn_func(struct rpcrdma_ep *);
|
|
void rpcrdma_reply_handler(struct rpcrdma_rep *);
|
|
void rpcrdma_reply_handler(struct rpcrdma_rep *);
|
|
|
|
|