[Pvfs2-cvs] commit by slang in pvfs2/src/io/bmi/bmi_tcp: bmi-tcp-addressing.h bmi-tcp.c socket-collection-epoll.c

CVS commit program cvs at parl.clemson.edu
Tue Oct 9 18:01:39 EDT 2007


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

Modified Files:
      Tag: pvfs-2-6-branch
	bmi-tcp-addressing.h bmi-tcp.c socket-collection-epoll.c 
Log Message:
merge halloween bug fixes to 2.6 branch.


Index: bmi-tcp-addressing.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp/bmi-tcp-addressing.h,v
diff -p -u -r1.15 -r1.15.12.1
--- bmi-tcp-addressing.h	11 Sep 2006 20:22:04 -0000	1.15
+++ bmi-tcp-addressing.h	9 Oct 2007 22:01:38 -0000	1.15.12.1
@@ -46,6 +46,7 @@ struct tcp_allowed_connection_s {
  * connections are made */
 struct tcp_addr
 {
+    PVFS_BMI_addr_t bmi_addr;
     method_addr_p map;		/* points back to generic address */
     /* stores error code for addresses that are broken for some reason */
     int addr_error;		

Index: bmi-tcp.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp/bmi-tcp.c,v
diff -p -u -r1.113.6.1 -r1.113.6.2
--- bmi-tcp.c	5 Apr 2007 15:49:41 -0000	1.113.6.1
+++ bmi-tcp.c	9 Oct 2007 22:01:38 -0000	1.113.6.2
@@ -916,7 +916,7 @@ int BMI_tcp_get_info(int option,
 	 * an error and there is no way to reconnect
 	 */
 	if(tcp_addr_data->addr_error != 0 &&
-	    tcp_addr_data->dont_reconnect == 1)
+           tcp_addr_data->dont_reconnect == 1)
 	{
 	    query->response = 1;
 	}
@@ -1855,6 +1855,8 @@ void tcp_forget_addr(method_addr_p map,
 	BMI_socket_collection_testglobal(tcp_socket_collection_p,
 	    0, &tmp_outcount, &tmp_addr, &tmp_status, 0, &interface_mutex);
     }
+
+    bmi_method_addr_forget_callback(tcp_addr_data->bmi_addr);
     tcp_shutdown_addr(map);
     tcp_cleanse_addr(map, error_code);
     tcp_addr_data->addr_error = error_code;
@@ -2850,7 +2852,7 @@ static int handle_new_connection(method_
      */
     tcp_addr_data->dont_reconnect = 1;
     /* register this address with the method control layer */
-    ret = bmi_method_addr_reg_callback(new_addr);
+    tcp_addr_data->bmi_addr = bmi_method_addr_reg_callback(new_addr);
     if (ret < 0)
     {
 	tcp_shutdown_addr(new_addr);
@@ -2985,10 +2987,7 @@ static int tcp_do_work_recv(method_addr_
 
     *stall_flag = 0;
     gossip_ldebug(GOSSIP_BMI_DEBUG_TCP, "Reading header for new op.\n");
-    /* NOTE: we only allow a blocking call here because we peeked to see
-     * if this amount of data was ready above.  
-     */
-    ret = BMI_sockio_brecv(tcp_addr_data->socket,
+    ret = BMI_sockio_nbrecv(tcp_addr_data->socket,
                            new_header.enc_hdr, TCP_ENC_HDR_SIZE);
     if (ret < TCP_ENC_HDR_SIZE)
     {

Index: socket-collection-epoll.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp/socket-collection-epoll.c,v
diff -p -u -r1.4 -r1.4.10.1
--- socket-collection-epoll.c	12 Sep 2006 00:49:31 -0000	1.4
+++ socket-collection-epoll.c	9 Oct 2007 22:01:38 -0000	1.4.10.1
@@ -201,12 +201,14 @@ int BMI_socket_collection_testglobal(soc
 	tcp_addr_data = qlist_entry(iterator, struct tcp_addr, sc_link);
 	qlist_del(&tcp_addr_data->sc_link);
         
+
         /* take out of the epoll set */
         if(tcp_addr_data->sc_index > -1)
         {
             memset(&event, 0, sizeof(event));
             event.events = 0;
             event.data.ptr = tcp_addr_data->map;
+
             ret = epoll_ctl(scp->epfd, EPOLL_CTL_DEL, tcp_addr_data->socket,
                 &event);
 
@@ -228,6 +230,7 @@ int BMI_socket_collection_testglobal(soc
     {
 	tcp_addr_data = qlist_entry(iterator, struct tcp_addr, sc_link);
 	qlist_del(&tcp_addr_data->sc_link);
+
 	if(tcp_addr_data->sc_index > -1)
 	{
             memset(&event, 0, sizeof(event));
@@ -236,8 +239,9 @@ int BMI_socket_collection_testglobal(soc
             event.events = (EPOLLIN|EPOLLERR|EPOLLHUP);
 	    if(tcp_addr_data->write_ref_count > 0)
                 event.events |= EPOLLOUT;
+
             ret = epoll_ctl(scp->epfd, EPOLL_CTL_MOD, tcp_addr_data->socket,
-                &event);
+                            &event);
 
             if(ret < 0 && errno != ENOENT)
             {
@@ -257,6 +261,7 @@ int BMI_socket_collection_testglobal(soc
             event.events = (EPOLLIN|EPOLLERR|EPOLLHUP);
 	    if(tcp_addr_data->write_ref_count > 0)
                 event.events |= EPOLLOUT;
+
             ret = epoll_ctl(scp->epfd, EPOLL_CTL_ADD, tcp_addr_data->socket,
                 &event);
             if(ret < 0 && errno != EEXIST)



More information about the Pvfs2-cvs mailing list