#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 *,
 
        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
 
        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;
        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