int rc, size[2] = { sizeof(struct ptlrpc_body), sizeof(*body) };
ENTRY;
+ OBD_FAIL_RETURN(OBD_FAIL_MDS_GETSTATUS_PACK, req->rq_status = -ENOMEM);
rc = lustre_pack_reply(req, 2, size, NULL);
- if (rc || OBD_FAIL_CHECK(OBD_FAIL_MDS_GETSTATUS_PACK)) {
- CERROR("mds: out of memory for message\n");
- req->rq_status = -ENOMEM; /* superfluous? */
- RETURN(-ENOMEM);
- }
+ if (rc)
+ RETURN(req->rq_status = rc);
body = lustre_msg_buf(req->rq_repmsg, REPLY_REC_OFF, sizeof(*body));
memcpy(&body->fid1, &mds->mds_rootfid, sizeof(body->fid1));
rc = lustre_pack_reply(req, bufcount, size, NULL);
if (rc) {
- CERROR("lustre_pack_reply failed: rc %d\n", rc);
req->rq_status = rc;
RETURN(rc);
}
default:
mds_exit_ucred(&uc, mds);
if (!req->rq_packed_final) {
+ int rc2 = lustre_pack_reply(req, 1, NULL, NULL);
+ if (rc == 0)
+ rc = rc2;
req->rq_status = rc;
- lustre_pack_reply(req, 1, NULL, NULL);
}
}
return rc;
pop_ctxt(&saved, &obd->obd_lvfs_ctxt, &uc);
out_ucred:
if (!req->rq_packed_final) {
+ int rc2 = lustre_pack_reply(req, 1, NULL, NULL);
+ if (rc == 0)
+ rc = rc2;
req->rq_status = rc;
- lustre_pack_reply(req, 1, NULL, NULL);
}
mds_exit_ucred(&uc, mds);
return rc;
at_get(&svc->srv_at_estimate) / 1000) + 1);
OBD_COUNTER_INCREMENT(obd, statfs);
+ if (OBD_FAIL_CHECK(OBD_FAIL_MDS_STATFS_PACK))
+ GOTO(out, rc = -ENOMEM);
rc = lustre_pack_reply(req, 2, size, NULL);
- if (rc || OBD_FAIL_CHECK(OBD_FAIL_MDS_STATFS_PACK)) {
- CERROR("mds: statfs lustre_pack_reply failed: rc = %d\n", rc);
+ if (rc)
GOTO(out, rc);
- }
/* We call this so that we can cache a bit - 1 jiffie worth */
rc = mds_obd_statfs(obd, lustre_msg_buf(req->rq_repmsg, REPLY_REC_OFF,
if (body == NULL)
GOTO(out, rc = -EFAULT);
+ if (OBD_FAIL_CHECK(OBD_FAIL_MDS_SYNC_PACK))
+ GOTO(out, rc = -ENOMEM);
rc = lustre_pack_reply(req, 2, size, NULL);
- if (rc || OBD_FAIL_CHECK(OBD_FAIL_MDS_SYNC_PACK)) {
- CERROR("fsync lustre_pack_reply failed: rc = %d\n", rc);
+ if (rc)
GOTO(out, rc);
- }
if (body->fid1.id == 0) {
/* a fid of zero is taken to mean "sync whole filesystem" */
struct lvfs_ucred uc = {NULL,};
ENTRY;
- if (OBD_FAIL_CHECK(OBD_FAIL_MDS_READPAGE_PACK))
- RETURN(-ENOMEM);
-
+ OBD_FAIL_RETURN(OBD_FAIL_MDS_READPAGE_PACK, -ENOMEM);
rc = lustre_pack_reply(req, 2, size, NULL);
- if (rc) {
- CERROR("error packing readpage reply: rc %d\n", rc);
+ if (rc)
GOTO(out, rc);
- }
body = lustre_swab_reqbuf(req, offset, sizeof(*body),
lustre_swab_mds_body);
rc = lustre_pack_reply(req, 1, NULL, NULL);
if (rc)
RETURN(rc);
+
lustre_msg_set_status(req->rq_repmsg, 0);
if (KEY_IS("read-only")) {
RETURN(-EPROTO);
rc = lustre_pack_reply(req, 1, NULL, NULL);
- if (rc) {
- CERROR("mds: out of memory while packing quotacheck reply\n");
+ if (rc)
RETURN(rc);
- }
req->rq_status = obd_quotacheck(req->rq_export, oqctl);
RETURN(0);
if (lustre_msg_bufcount(req->rq_reqmsg) <= DLM_INTENT_IT_OFF) {
/* No intent was provided */
rc = lustre_pack_reply(req, 2, repsize, NULL);
- LASSERT(rc == 0);
+ if (rc)
+ RETURN(rc);
RETURN(0);
}
rc = lustre_pack_reply(req, 2, size, NULL);
if (rc)
RETURN(rc);
+
repbody = lustre_msg_buf(req->rq_repmsg, REPLY_REC_OFF,
sizeof(*repbody));
ENTRY;
rc = lustre_pack_reply(req, 4, repsize, NULL);
- if (rc) {
- CERROR("lustre_pack_reply: rc = %d\n", rc);
+ if (rc)
req->rq_status = rc;
/* continue on to drop local open even if we can't send reply */
- } else {
+ else
MDS_CHECK_RESENT(req, mds_reconstruct_generic(req));
- }
CDEBUG(D_INODE, "close req->rep_len %d mdsize %d cookiesize %d\n",
req->rq_replen,
}
rc = lustre_pack_reply(req, 2, size, NULL);
- if (rc) {
- CERROR("lustre_pack_reply: rc = %d\n", rc);
+ if (rc)
req->rq_status = rc;
- }
RETURN(0);
}