]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rds: Fix regression in dynamic active bonding configuration
authorBang Nguyen <bang.nguyen@oracle.com>
Wed, 26 Mar 2014 04:52:46 +0000 (21:52 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 8 Jul 2015 20:59:53 +0000 (13:59 -0700)
OraBug: 18481645

Commit 6cf7cc30 "rds: dynamic active bonding configuration" introduced
a regression. Late joining IB interfaces were not configured
correctly.  When active bonding configuration shows both interfaces
down, IP failover was not happening.  This patch fixes this issue.

Signed-off-by: Bang Nguyen <bang.nguyen@oracle.com>
Signed-off-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
(cherry picked from commit 12755dbf7b4adc8ea2a935900b81c384731f6fff)
Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
(cherry picked from commit 12eebc4b9e28c3899089277ff9725bdcff1829aa)

net/rds/ib.c

index 7bf7aa4c0e2e7fad0c4c885b828bd9ee31356a81..3fd8457b474d2a28d72bed5395ee7e093db0c515 100644 (file)
@@ -1032,14 +1032,8 @@ static void rds_ib_failback(struct work_struct *_work)
        u8                              i, ip_active_port, port = work->port;
 
        if (ip_config[port].port_state == RDS_IB_PORT_INIT) {
-               printk(KERN_NOTICE "RDS/IB: %s/port_%d/%s is ERROR\n",
-                       ip_config[port].rds_ibdev->dev->name,
-                       ip_config[port].port_num,
-                       ip_config[port].if_name);
-
-               rds_ib_do_failover(port, 0, 0, work->event_type);
-               if (ip_config[port].ip_active_port != port)
-                       ip_config[port].port_state = RDS_IB_PORT_DOWN;
+               ip_config[port].port_state = RDS_IB_PORT_UP;
+               ip_config[port].ip_active_port = port;
                goto out;
        }
 
@@ -1195,7 +1189,9 @@ static void rds_ib_dump_ip_config(void)
                        NIPQUAD(ip_config[i].ip_bcast),
                        NIPQUAD(ip_config[i].ip_mask),
                        (ip_config[i].port_state ==
-                               RDS_IB_PORT_UP ? "UP" : "DOWN"));
+                        RDS_IB_PORT_UP ? "UP" :
+                        (ip_config[i].port_state ==
+                         RDS_IB_PORT_DOWN ? "DOWN" : "INIT")));
 
                for (j = 0; j < ip_config[i].alias_cnt; j++) {
                        printk(KERN_INFO "Alias %s "