out_local:
OBD_FREE(local_nb, sizeof(*local_nb) * niocount);
out:
- if (rc)
+ if (rc) {
+ /* It's a lot of work to delay allocating the reply, and a lot
+ * less work to just free it here. */
+ OBD_FREE(req->rq_repmsg, req->rq_replen);
+ req->rq_repmsg = NULL;
ptlrpc_error(req->rq_svc, req);
- else
+ } else
ptlrpc_reply(req->rq_svc, req);
RETURN(rc);
}
OBD_FREE(local_nb, niocount * sizeof(*local_nb));
out:
if (!reply_sent) {
- if (rc)
+ if (rc) {
+ OBD_FREE(req->rq_repmsg, req->rq_replen);
+ req->rq_repmsg = NULL;
ptlrpc_error(req->rq_svc, req);
- else
+ } else
ptlrpc_reply(req->rq_svc, req);
}
return rc;