diff options
Diffstat (limited to 'include/linux/sunrpc/svcsock.h')
-rw-r--r-- | include/linux/sunrpc/svcsock.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h index 92ad02f0dcc0..62fd1b756e99 100644 --- a/include/linux/sunrpc/svcsock.h +++ b/include/linux/sunrpc/svcsock.h | |||
@@ -26,11 +26,28 @@ struct svc_sock { | |||
26 | void (*sk_owspace)(struct sock *); | 26 | void (*sk_owspace)(struct sock *); |
27 | 27 | ||
28 | /* private TCP part */ | 28 | /* private TCP part */ |
29 | u32 sk_reclen; /* length of record */ | 29 | /* On-the-wire fragment header: */ |
30 | u32 sk_tcplen; /* current read length */ | 30 | __be32 sk_reclen; |
31 | /* As we receive a record, this includes the length received so | ||
32 | * far (including the fragment header): */ | ||
33 | u32 sk_tcplen; | ||
34 | /* Total length of the data (not including fragment headers) | ||
35 | * received so far in the fragments making up this rpc: */ | ||
36 | u32 sk_datalen; | ||
37 | |||
31 | struct page * sk_pages[RPCSVC_MAXPAGES]; /* received data */ | 38 | struct page * sk_pages[RPCSVC_MAXPAGES]; /* received data */ |
32 | }; | 39 | }; |
33 | 40 | ||
41 | static inline u32 svc_sock_reclen(struct svc_sock *svsk) | ||
42 | { | ||
43 | return ntohl(svsk->sk_reclen) & RPC_FRAGMENT_SIZE_MASK; | ||
44 | } | ||
45 | |||
46 | static inline u32 svc_sock_final_rec(struct svc_sock *svsk) | ||
47 | { | ||
48 | return ntohl(svsk->sk_reclen) & RPC_LAST_STREAM_FRAGMENT; | ||
49 | } | ||
50 | |||
34 | /* | 51 | /* |
35 | * Function prototypes. | 52 | * Function prototypes. |
36 | */ | 53 | */ |