svcrdma: Clean up read chunk counting
The byte_count argument is not used, and the function is called only from one place. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
		
					parent
					
						
							
								83f2bedfc6
							
						
					
				
			
			
				commit
				
					
						2397aa8b51
					
				
			
		
					 3 changed files with 12 additions and 21 deletions
				
			
		|  | @ -178,8 +178,6 @@ struct svcxprt_rdma { | |||
| #define RPCRDMA_MAX_REQ_SIZE    4096 | ||||
| 
 | ||||
| /* svc_rdma_marshal.c */ | ||||
| extern void svc_rdma_rcl_chunk_counts(struct rpcrdma_read_chunk *, | ||||
| 				      int *, int *); | ||||
| extern int svc_rdma_xdr_decode_req(struct rpcrdma_msg **, struct svc_rqst *); | ||||
| extern int svc_rdma_xdr_decode_deferred_req(struct svc_rqst *); | ||||
| extern int svc_rdma_xdr_encode_error(struct svcxprt_rdma *, | ||||
|  |  | |||
|  | @ -70,22 +70,6 @@ static u32 *decode_read_list(u32 *va, u32 *vaend) | |||
| 	return (u32 *)&ch->rc_position; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Determine number of chunks and total bytes in chunk list. The chunk | ||||
|  * list has already been verified to fit within the RPCRDMA header. | ||||
|  */ | ||||
| void svc_rdma_rcl_chunk_counts(struct rpcrdma_read_chunk *ch, | ||||
| 			       int *ch_count, int *byte_count) | ||||
| { | ||||
| 	/* compute the number of bytes represented by read chunks */ | ||||
| 	*byte_count = 0; | ||||
| 	*ch_count = 0; | ||||
| 	for (; ch->rc_discrim != 0; ch++) { | ||||
| 		*byte_count = *byte_count + ntohl(ch->rc_target.rs_length); | ||||
| 		*ch_count = *ch_count + 1; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Decodes a write chunk list. The expected format is as follows: | ||||
|  *    descrim  : xdr_one | ||||
|  |  | |||
|  | @ -365,12 +365,22 @@ static int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt, | |||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| static unsigned int | ||||
| rdma_rcl_chunk_count(struct rpcrdma_read_chunk *ch) | ||||
| { | ||||
| 	unsigned int count; | ||||
| 
 | ||||
| 	for (count = 0; ch->rc_discrim != xdr_zero; ch++) | ||||
| 		count++; | ||||
| 	return count; | ||||
| } | ||||
| 
 | ||||
| static int rdma_read_chunks(struct svcxprt_rdma *xprt, | ||||
| 			    struct rpcrdma_msg *rmsgp, | ||||
| 			    struct svc_rqst *rqstp, | ||||
| 			    struct svc_rdma_op_ctxt *head) | ||||
| { | ||||
| 	int page_no, ch_count, ret; | ||||
| 	int page_no, ret; | ||||
| 	struct rpcrdma_read_chunk *ch; | ||||
| 	u32 page_offset, byte_count; | ||||
| 	u64 rs_offset; | ||||
|  | @ -381,8 +391,7 @@ static int rdma_read_chunks(struct svcxprt_rdma *xprt, | |||
| 	if (!ch) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	svc_rdma_rcl_chunk_counts(ch, &ch_count, &byte_count); | ||||
| 	if (ch_count > RPCSVC_MAXPAGES) | ||||
| 	if (rdma_rcl_chunk_count(ch) > RPCSVC_MAXPAGES) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	/* The request is completed when the RDMA_READs complete. The
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Chuck Lever
				Chuck Lever