[Pvfs2-cvs] commit by atchley in pvfs2/src/io/bmi/bmi_mx: mx.c
CVS commit program
cvs at parl.clemson.edu
Thu Jul 16 15:12:27 EDT 2009
Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx
In directory parlweb1:/tmp/cvs-serv6532
Modified Files:
mx.c
Log Message:
When queuing unex rxs and txs, cache their MX status. When dequeuing these,
set the local status variable with the cached info.
Fixes bug reported by Kazuki Ohta in iofwd testing.
Index: mx.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx/mx.c,v
diff -p -u -r1.31 -r1.32
--- mx.c 14 Jul 2009 16:17:23 -0000 1.31
+++ mx.c 16 Jul 2009 19:12:27 -0000 1.32
@@ -2805,6 +2805,7 @@ BMI_mx_testcontext(int incount, bmi_op_i
peer = ctx->mxc_peer;
qlist_del_init(&ctx->mxc_list);
result = 1;
+ status = ctx->mxc_mxstat;
}
gen_mutex_unlock(&bmi_mx->bmx_unex_txs_lock);
@@ -2816,6 +2817,7 @@ BMI_mx_testcontext(int incount, bmi_op_i
bmx_deq_pending_ctx(ctx);
peer = ctx->mxc_peer;
if (ctx->mxc_type == BMX_REQ_RX) {
+ ctx->mxc_mxstat = status;
/* queue until testunexpected is called */
bmx_q_unex_ctx(ctx);
result = 0;
@@ -2919,6 +2921,7 @@ BMI_mx_testunexpected(int incount __unus
peer = rx->mxc_peer;
qlist_del_init(&rx->mxc_list);
result = 1;
+ status = rx->mxc_mxstat;
}
gen_mutex_unlock(&bmi_mx->bmx_unex_rxs_lock);
@@ -2930,6 +2933,7 @@ BMI_mx_testunexpected(int incount __unus
bmx_deq_pending_ctx(rx);
peer = rx->mxc_peer;
if (rx->mxc_type == BMX_REQ_TX) {
+ rx->mxc_mxstat = status;
bmx_q_unex_ctx(rx);
result = 0;
again = 1;
More information about the Pvfs2-cvs
mailing list