static int ldlm_callback_reply(struct ptlrpc_request *req, int rc) { if (req->rq_no_reply) return 0; req->rq_status = rc; if (!req->rq_packed_final) { rc = lustre_pack_reply(req, 1, NULL, NULL); if (rc) return rc; } return ptlrpc_reply(req); }
/** * For request \a req send an error reply back. Create empty * reply buffers if necessary. */ int ptlrpc_send_error(struct ptlrpc_request *req, int may_be_difficult) { int rc; if (req->rq_no_reply) return 0; if (!req->rq_repmsg) { rc = lustre_pack_reply(req, 1, NULL, NULL); if (rc) return rc; } if (req->rq_status != -ENOSPC && req->rq_status != -EACCES && req->rq_status != -EPERM && req->rq_status != -ENOENT && req->rq_status != -EINPROGRESS && req->rq_status != -EDQUOT) req->rq_type = PTL_RPC_MSG_ERR; rc = ptlrpc_send_reply(req, may_be_difficult); return rc; }