mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
SUNRPC: Refactor svc_recvfrom()
This function is not currently "generic" so remove the documenting comment and rename it appropriately. Its internals are converted to use bio_vecs for reading from the transport socket. In existing typical sunrpc uses of bio_vecs, the bio_vec array is allocated dynamically. Here, instead, an array of bio_vecs is added to svc_rqst. The lifetime of this array can be greater than one call to xpo_recvfrom(): - Multiple calls to xpo_recvfrom() might be needed to read an RPC message completely. - At some later point, rq_arg.bvecs will point to this array and it will carry the received message into svc_process(). I also expect that a future optimization will remove either the rq_vec or rq_pages array in favor of rq_bvec, thus conserving the size of struct svc_rqst. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
cca557a5a6
commit
ca07eda33e
2 changed files with 69 additions and 41 deletions
|
@ -254,6 +254,7 @@ struct svc_rqst {
|
|||
struct page * *rq_page_end; /* one past the last page */
|
||||
|
||||
struct kvec rq_vec[RPCSVC_MAXPAGES]; /* generally useful.. */
|
||||
struct bio_vec rq_bvec[RPCSVC_MAXPAGES];
|
||||
|
||||
__be32 rq_xid; /* transmission id */
|
||||
u32 rq_prog; /* program number */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue