- /* Reuse the request structure for the completion request. */
- OBD_FREE(request->rq_rephdr, request->rq_replen);
- request->rq_rephdr = NULL;
- request->rq_repbuf = NULL;
- request->rq_reqhdr->opc = OST_BRW_COMPLETE;
- request->rq_replen = sizeof(struct ptlrep_hdr) + sizeof(struct ost_rep);
- rc = ptlrpc_queue_wait(cl, request);
+ ptr2 = ost_rep_buf2(request->rq_rep.ost);
+ req2 = ptlrpc_prep_req(cl, OST_BRW_COMPLETE, size1, ptr1,
+ request->rq_rep.ost->buflen2, ptr2);
+ if (!req2) {
+ CERROR("cannot pack second request!\n");
+ return -ENOMEM;
+ }
+
+ req2->rq_reqhdr->opc = OST_BRW_COMPLETE;
+ req2->rq_replen = sizeof(struct ptlrep_hdr) + sizeof(struct ost_rep);
+ rc = ptlrpc_queue_wait(cl, req2);