[Pvfs2-cvs] commit by pw in pvfs2/src/io/bmi/bmi_ib: ib.c
CVS commit program
cvs at parl.clemson.edu
Fri Feb 8 17:04:20 EST 2008
Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_ib
In directory parlweb1:/tmp/cvs-serv8911/src/io/bmi/bmi_ib
Modified Files:
ib.c
Log Message:
bmi_ib: only verify remote mop_ids for recv queue items that are
waiting for RTS_DONE messages. The other side may have reused a
mop_id and now we have it in multiple rq->rts_mop_id, although no
more than one will ever be waiting for an RTS_DONE.
Index: ib.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_ib/ib.c,v
diff -u -p -p -u -r1.62 -r1.63
--- ib.c 5 Dec 2007 20:03:17 -0000 1.62
+++ ib.c 8 Feb 2008 22:04:19 -0000 1.63
@@ -6,7 +6,7 @@
*
* See COPYING in top-level directory.
*
- * $Id: ib.c,v 1.62 2007/12/05 20:03:17 pw Exp $
+ * $Id: ib.c,v 1.63 2008/02/08 22:04:19 pw Exp $
*/
#include <stdio.h>
#include <stdlib.h>
@@ -217,8 +217,9 @@ static int ib_check_cq(void)
assert(0, "%s: unknown send state %s (%d) of sq %p",
__func__, sq_state_name(sq->state.send),
sq->state.send, sq);
- debug(2, "%s: send to %s completed locally: -> %s",
- __func__, bh->c->peername, sq_state_name(sq->state.send));
+ debug(2, "%s: send to %s completed locally: sq %p -> %s",
+ __func__, bh->c->peername, sq,
+ sq_state_name(sq->state.send));
} else {
struct ib_work *rq = sq; /* rename */
@@ -229,8 +230,9 @@ static int ib_check_cq(void)
else
assert(0, "%s: unknown send state %s of rq %p",
__func__, rq_state_name(rq->state.recv), rq);
- debug(2, "%s: send to %s completed locally: -> %s",
- __func__, bh->c->peername, rq_state_name(rq->state.recv));
+ debug(2, "%s: send to %s completed locally: rq %p -> %s",
+ __func__, bh->c->peername, rq,
+ rq_state_name(rq->state.recv));
}
qlist_add_tail(&bh->list, &bh->c->eager_send_buf_free);
@@ -599,7 +601,8 @@ encourage_recv_incoming(struct buf_head
rq = NULL;
qlist_for_each_entry(rqt, &ib_device->recvq, list) {
- if (rqt->c == c && rqt->rts_mop_id == mh_rts_done.mop_id) {
+ if (rqt->c == c && rqt->rts_mop_id == mh_rts_done.mop_id &&
+ rqt->state.recv == RQ_RTS_WAITING_RTS_DONE) {
rq = rqt;
break;
}
@@ -607,9 +610,6 @@ encourage_recv_incoming(struct buf_head
assert(rq, "%s: mop_id %llx in RTS_DONE message not found",
__func__, llu(mh_rts_done.mop_id));
- assert(rq->state.recv == RQ_RTS_WAITING_RTS_DONE,
- "%s: RTS_DONE to rq wrong state %s",
- __func__, rq_state_name(rq->state.recv));
#if MEMCACHE_BOUNCEBUF
memcpy_to_buflist(&rq->buflist, reg_recv_buflist_buf,
More information about the Pvfs2-cvs
mailing list