[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