@@ -1225,7 +1225,7 @@ EXPORT_SYMBOL_GPL(svc_generic_init_request);
12251225 * Common routine for processing the RPC request.
12261226 */
12271227static int
1228- svc_process_common (struct svc_rqst * rqstp , struct kvec * resv )
1228+ svc_process_common (struct svc_rqst * rqstp )
12291229{
12301230 struct xdr_stream * xdr = & rqstp -> rq_res_stream ;
12311231 struct svc_program * progp ;
@@ -1455,7 +1455,7 @@ svc_process(struct svc_rqst *rqstp)
14551455 if (unlikely (* p != rpc_call ))
14561456 goto out_baddir ;
14571457
1458- if (!svc_process_common (rqstp , resv ))
1458+ if (!svc_process_common (rqstp ))
14591459 goto out_drop ;
14601460 return svc_send (rqstp );
14611461
@@ -1478,7 +1478,6 @@ int
14781478bc_svc_process (struct svc_serv * serv , struct rpc_rqst * req ,
14791479 struct svc_rqst * rqstp )
14801480{
1481- struct kvec * resv = & rqstp -> rq_res .head [0 ];
14821481 struct rpc_task * task ;
14831482 int proc_error ;
14841483 int error ;
@@ -1509,22 +1508,21 @@ bc_svc_process(struct svc_serv *serv, struct rpc_rqst *req,
15091508 rqstp -> rq_arg .len = rqstp -> rq_arg .head [0 ].iov_len +
15101509 rqstp -> rq_arg .page_len ;
15111510
1512- /* reset result send buffer "put" position */
1513- resv -> iov_len = 0 ;
1514-
1515- svcxdr_init_decode (rqstp );
1511+ /* Reset the response buffer */
1512+ rqstp -> rq_res .head [0 ].iov_len = 0 ;
15161513
15171514 /*
15181515 * Skip the XID and calldir fields because they've already
15191516 * been processed by the caller.
15201517 */
1518+ svcxdr_init_decode (rqstp );
15211519 if (!xdr_inline_decode (& rqstp -> rq_arg_stream , XDR_UNIT * 2 )) {
15221520 error = - EINVAL ;
15231521 goto out ;
15241522 }
15251523
15261524 /* Parse and execute the bc call */
1527- proc_error = svc_process_common (rqstp , resv );
1525+ proc_error = svc_process_common (rqstp );
15281526
15291527 atomic_dec (& req -> rq_xprt -> bc_slot_count );
15301528 if (!proc_error ) {
0 commit comments