|
@@ -418,28 +418,15 @@ rpcrdma_marshal_req(struct rpc_rqst *rqst)
|
|
|
/*
|
|
|
* Chunks needed for results?
|
|
|
*
|
|
|
+ * o Read ops return data as write chunk(s), header as inline.
|
|
|
* o If the expected result is under the inline threshold, all ops
|
|
|
* return as inline (but see later).
|
|
|
* o Large non-read ops return as a single reply chunk.
|
|
|
- * o Large read ops return data as write chunk(s), header as inline.
|
|
|
- *
|
|
|
- * Note: the NFS code sending down multiple result segments implies
|
|
|
- * the op is one of read, readdir[plus], readlink or NFSv4 getacl.
|
|
|
- */
|
|
|
-
|
|
|
- /*
|
|
|
- * This code can handle read chunks, write chunks OR reply
|
|
|
- * chunks -- only one type. If the request is too big to fit
|
|
|
- * inline, then we will choose read chunks. If the request is
|
|
|
- * a READ, then use write chunks to separate the file data
|
|
|
- * into pages; otherwise use reply chunks.
|
|
|
*/
|
|
|
- if (rpcrdma_results_inline(rqst))
|
|
|
- wtype = rpcrdma_noch;
|
|
|
- else if (rqst->rq_rcv_buf.page_len == 0)
|
|
|
- wtype = rpcrdma_replych;
|
|
|
- else if (rqst->rq_rcv_buf.flags & XDRBUF_READ)
|
|
|
+ if (rqst->rq_rcv_buf.flags & XDRBUF_READ)
|
|
|
wtype = rpcrdma_writech;
|
|
|
+ else if (rpcrdma_results_inline(rqst))
|
|
|
+ wtype = rpcrdma_noch;
|
|
|
else
|
|
|
wtype = rpcrdma_replych;
|
|
|
|