[Pvfs2-cvs] commit by slang in pvfs2/src/io/bmi/bmi_tcp: bmi-tcp.c

CVS commit program cvs at parl.clemson.edu
Sat Oct 20 11:40:13 EDT 2007


Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp
In directory parlweb1:/tmp/cvs-serv25181/src/io/bmi/bmi_tcp

Modified Files:
	bmi-tcp.c 
Log Message:
commit of Phil's patches for the halloween bug fixes.  See the pvfs2-dev for details.


Index: bmi-tcp.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp/bmi-tcp.c,v
diff -p -u -r1.120 -r1.121
--- bmi-tcp.c	16 Oct 2007 22:53:44 -0000	1.120
+++ bmi-tcp.c	20 Oct 2007 15:40:13 -0000	1.121
@@ -1841,6 +1841,7 @@ void tcp_forget_addr(method_addr_p map,
 		     int error_code)
 {
     struct tcp_addr* tcp_addr_data = map->method_data;
+    PVFS_BMI_addr_t bmi_addr = tcp_addr_data->bmi_addr;
     int tmp_outcount;
     method_addr_p tmp_addr;
     int tmp_status;
@@ -1855,15 +1856,19 @@ void tcp_forget_addr(method_addr_p map,
 	    0, &tmp_outcount, &tmp_addr, &tmp_status, 0, &interface_mutex);
     }
 
-    gen_mutex_unlock(&interface_mutex);
-    bmi_method_addr_forget_callback(tcp_addr_data->bmi_addr);
-    gen_mutex_lock(&interface_mutex);
     tcp_shutdown_addr(map);
     tcp_cleanse_addr(map, error_code);
     tcp_addr_data->addr_error = error_code;
     if (dealloc_flag)
     {
 	dealloc_tcp_method_addr(map);
+    }
+    else
+    {
+        /* this will cause the bmi control layer to check to see if 
+         * this address can be completely forgotten
+         */
+        bmi_method_addr_forget_callback(bmi_addr);
     }
     return;
 };



More information about the Pvfs2-cvs mailing list