]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
RDS: restore two-sided reconnect with the lower IP node having a constant 100 ms...
authorBang Nguyen <bang.nguyen@oracle.com>
Tue, 25 Jun 2013 17:41:41 +0000 (10:41 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 8 Jul 2015 20:37:59 +0000 (13:37 -0700)
Orabug: 16710287

Signed-off-by: Richard Frank <richard.frank@oracle.com>
(cherry picked from commit 1e165f6511abd1d57e4be79f1a3a430c98a7576e)

net/rds/connection.c
net/rds/threads.c

index ed6b2765e134530cffda38c1f1a4a36e116c1a4f..e21fc5f0a9dcbd9f08811b1a8f8f17151d18fc3a 100644 (file)
@@ -345,8 +345,7 @@ void rds_conn_shutdown(struct rds_connection *conn)
        rcu_read_lock();
        if (!hlist_unhashed(&conn->c_hash_node)) {
                rcu_read_unlock();
-               if (conn->c_laddr >= conn->c_faddr)
-                       rds_queue_reconnect(conn);
+               rds_queue_reconnect(conn);
        } else {
                rcu_read_unlock();
        }
index 1c0ac67bbc693e67b71f45639f8f35d1658a7198..c9a4ba55cb450f21f89a17719c68ae1e040f59ce 100644 (file)
@@ -139,8 +139,12 @@ void rds_queue_reconnect(struct rds_connection *conn)
        rdsdebug("%lu delay %lu ceil conn %p for %pI4 -> %pI4\n",
                 rand % conn->c_reconnect_jiffies, conn->c_reconnect_jiffies,
                 conn, &conn->c_laddr, &conn->c_faddr);
-       queue_delayed_work(rds_wq, &conn->c_conn_w,
+       if (conn->c_laddr >= conn->c_faddr)
+               queue_delayed_work(rds_wq, &conn->c_conn_w,
                           rand % conn->c_reconnect_jiffies);
+       else
+               queue_delayed_work(rds_wq, &conn->c_conn_w,
+                                       msecs_to_jiffies(100));
 
        conn->c_reconnect_jiffies = min(conn->c_reconnect_jiffies * 2,
                                        rds_sysctl_reconnect_max_jiffies);