svc: Add transport hdr size for defer/revisit
Some transports have a header in front of the RPC header. The current defer/revisit processing considers only the iov_len and arg_len to determine how much to back up when saving the original request to revisit. Add a field to the rqstp structure to save the size of the transport header so svc_defer can correctly compute the start of a request. Signed-off-by: Tom Tucker <tom@opengridcomputing.com> Acked-by: Neil Brown <neilb@suse.de> Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Reviewed-by: Greg Banks <gnb@sgi.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:

committed by
J. Bruce Fields

parent
0f0257eaa5
commit
260c1d1298
@@ -217,6 +217,7 @@ struct svc_rqst {
|
||||
void * rq_xprt_ctxt; /* transport specific context ptr */
|
||||
struct svc_deferred_req*rq_deferred; /* deferred request we are replaying */
|
||||
|
||||
size_t rq_xprt_hlen; /* xprt header len */
|
||||
struct xdr_buf rq_arg;
|
||||
struct xdr_buf rq_res;
|
||||
struct page * rq_pages[RPCSVC_MAXPAGES];
|
||||
@@ -322,6 +323,7 @@ struct svc_deferred_req {
|
||||
size_t addrlen;
|
||||
union svc_addr_u daddr; /* where reply must come from */
|
||||
struct cache_deferred_req handle;
|
||||
size_t xprt_hlen;
|
||||
int argslen;
|
||||
__be32 args[0];
|
||||
};
|
||||
|
Reference in New Issue
Block a user