From 0463bbc6ebdcb1316ece4077f67573679635a973 Mon Sep 17 00:00:00 2001 From: alex <alex> Date: Tue, 27 Jul 2004 12:17:06 +0000 Subject: [PATCH] b=3995 - mdc_enqueue() saved wrong easize for IT_OPEN replay --- lustre/mdc/mdc_locks.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lustre/mdc/mdc_locks.c b/lustre/mdc/mdc_locks.c index 8c04ca2c6f..ae07c91f97 100644 --- a/lustre/mdc/mdc_locks.c +++ b/lustre/mdc/mdc_locks.c @@ -390,10 +390,8 @@ int mdc_enqueue(struct obd_export *exp, } if ((body->valid & OBD_MD_FLEASIZE) != 0) { - void *replayea; - /* The eadata is opaque; just check that it is - * there. Eventually, obd_unpackmd() will check - * the contents */ + /* The eadata is opaque; just check that it is there. + * Eventually, obd_unpackmd() will check the contents */ eadata = lustre_swab_repbuf(req, 2, body->eadatasize, NULL); if (eadata == NULL) { @@ -401,10 +399,17 @@ int mdc_enqueue(struct obd_export *exp, RETURN (-EPROTO); } if (it->it_op & IT_OPEN) { - replayea = lustre_msg_buf(req->rq_reqmsg, 4, - obddev->u.cli.cl_max_mds_easize); + void *replayea; + + replayea = lustre_msg_buf(req->rq_reqmsg, 4, + body->eadatasize); LASSERT(replayea); memcpy(replayea, eadata, body->eadatasize); + + LASSERT(req->rq_reqmsg->bufcount == 5); + req->rq_reqmsg->buflens[4] = body->eadatasize; + /* If this isn't the last buffer, we might + * have to shift other data around. */ } } } -- GitLab