diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
| commit | bbb20089a3275a19e475dbc21320c3742e3ca423 (patch) | |
| tree | 216fdc1cbef450ca688135c5b8969169482d9a48 /include/linux/sunrpc/xprt.h | |
| parent | 3e48e656903e9fd8bc805c6a2c4264d7808d315b (diff) | |
| parent | 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 (diff) | |
Merge branch 'dmaengine' into async-tx-next
Conflicts:
crypto/async_tx/async_xor.c
drivers/dma/ioat/dma_v2.h
drivers/dma/ioat/pci.c
drivers/md/raid5.c
Diffstat (limited to 'include/linux/sunrpc/xprt.h')
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 08afe43118f4..1175d58efc2e 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -67,7 +67,8 @@ struct rpc_rqst { | |||
| 67 | struct rpc_task * rq_task; /* RPC task data */ | 67 | struct rpc_task * rq_task; /* RPC task data */ |
| 68 | __be32 rq_xid; /* request XID */ | 68 | __be32 rq_xid; /* request XID */ |
| 69 | int rq_cong; /* has incremented xprt->cong */ | 69 | int rq_cong; /* has incremented xprt->cong */ |
| 70 | int rq_received; /* receive completed */ | 70 | int rq_reply_bytes_recvd; /* number of reply */ |
| 71 | /* bytes received */ | ||
| 71 | u32 rq_seqno; /* gss seq no. used on req. */ | 72 | u32 rq_seqno; /* gss seq no. used on req. */ |
| 72 | int rq_enc_pages_num; | 73 | int rq_enc_pages_num; |
| 73 | struct page **rq_enc_pages; /* scratch pages for use by | 74 | struct page **rq_enc_pages; /* scratch pages for use by |
| @@ -97,6 +98,12 @@ struct rpc_rqst { | |||
| 97 | 98 | ||
| 98 | unsigned long rq_xtime; /* when transmitted */ | 99 | unsigned long rq_xtime; /* when transmitted */ |
| 99 | int rq_ntrans; | 100 | int rq_ntrans; |
| 101 | |||
| 102 | #if defined(CONFIG_NFS_V4_1) | ||
| 103 | struct list_head rq_bc_list; /* Callback service list */ | ||
| 104 | unsigned long rq_bc_pa_state; /* Backchannel prealloc state */ | ||
| 105 | struct list_head rq_bc_pa_list; /* Backchannel prealloc list */ | ||
| 106 | #endif /* CONFIG_NFS_V4_1 */ | ||
| 100 | }; | 107 | }; |
| 101 | #define rq_svec rq_snd_buf.head | 108 | #define rq_svec rq_snd_buf.head |
| 102 | #define rq_slen rq_snd_buf.len | 109 | #define rq_slen rq_snd_buf.len |
| @@ -174,6 +181,15 @@ struct rpc_xprt { | |||
| 174 | spinlock_t reserve_lock; /* lock slot table */ | 181 | spinlock_t reserve_lock; /* lock slot table */ |
| 175 | u32 xid; /* Next XID value to use */ | 182 | u32 xid; /* Next XID value to use */ |
| 176 | struct rpc_task * snd_task; /* Task blocked in send */ | 183 | struct rpc_task * snd_task; /* Task blocked in send */ |
| 184 | #if defined(CONFIG_NFS_V4_1) | ||
| 185 | struct svc_serv *bc_serv; /* The RPC service which will */ | ||
| 186 | /* process the callback */ | ||
| 187 | unsigned int bc_alloc_count; /* Total number of preallocs */ | ||
| 188 | spinlock_t bc_pa_lock; /* Protects the preallocated | ||
| 189 | * items */ | ||
| 190 | struct list_head bc_pa_list; /* List of preallocated | ||
| 191 | * backchannel rpc_rqst's */ | ||
| 192 | #endif /* CONFIG_NFS_V4_1 */ | ||
| 177 | struct list_head recv; | 193 | struct list_head recv; |
| 178 | 194 | ||
| 179 | struct { | 195 | struct { |
| @@ -192,6 +208,26 @@ struct rpc_xprt { | |||
| 192 | const char *address_strings[RPC_DISPLAY_MAX]; | 208 | const char *address_strings[RPC_DISPLAY_MAX]; |
| 193 | }; | 209 | }; |
| 194 | 210 | ||
| 211 | #if defined(CONFIG_NFS_V4_1) | ||
| 212 | /* | ||
| 213 | * Backchannel flags | ||
| 214 | */ | ||
| 215 | #define RPC_BC_PA_IN_USE 0x0001 /* Preallocated backchannel */ | ||
| 216 | /* buffer in use */ | ||
| 217 | #endif /* CONFIG_NFS_V4_1 */ | ||
| 218 | |||
| 219 | #if defined(CONFIG_NFS_V4_1) | ||
| 220 | static inline int bc_prealloc(struct rpc_rqst *req) | ||
| 221 | { | ||
| 222 | return test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state); | ||
| 223 | } | ||
| 224 | #else | ||
| 225 | static inline int bc_prealloc(struct rpc_rqst *req) | ||
| 226 | { | ||
| 227 | return 0; | ||
| 228 | } | ||
| 229 | #endif /* CONFIG_NFS_V4_1 */ | ||
| 230 | |||
| 195 | struct xprt_create { | 231 | struct xprt_create { |
| 196 | int ident; /* XPRT_TRANSPORT identifier */ | 232 | int ident; /* XPRT_TRANSPORT identifier */ |
| 197 | struct sockaddr * srcaddr; /* optional local address */ | 233 | struct sockaddr * srcaddr; /* optional local address */ |
