mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
[PATCH] svcrpc: save and restore the daddr field when request deferred
The server code currently keeps track of the destination address on every request so that it can reply using the same address. However we forget to do that in the case of a deferred request. Remedy this oversight. >From folks at PolyServe. Signed-off-by: J. Bruce Fields <[email protected]> Signed-off-by: Neil Brown <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
7e8f05934d
commit
1918e34138
2 changed files with 3 additions and 0 deletions
|
|
@ -1527,6 +1527,7 @@ svc_defer(struct cache_req *req)
|
|||
dr->handle.owner = rqstp->rq_server;
|
||||
dr->prot = rqstp->rq_prot;
|
||||
dr->addr = rqstp->rq_addr;
|
||||
dr->daddr = rqstp->rq_daddr;
|
||||
dr->argslen = rqstp->rq_arg.len >> 2;
|
||||
memcpy(dr->args, rqstp->rq_arg.head[0].iov_base-skip, dr->argslen<<2);
|
||||
}
|
||||
|
|
@ -1552,6 +1553,7 @@ static int svc_deferred_recv(struct svc_rqst *rqstp)
|
|||
rqstp->rq_arg.len = dr->argslen<<2;
|
||||
rqstp->rq_prot = dr->prot;
|
||||
rqstp->rq_addr = dr->addr;
|
||||
rqstp->rq_daddr = dr->daddr;
|
||||
return dr->argslen<<2;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue