[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1392626151-23916-2-git-send-email-dingtianhong@huawei.com>
Date: Mon, 17 Feb 2014 16:35:49 +0800
From: Ding Tianhong <dingtianhong@...wei.com>
To: <fubar@...ibm.com>, <vfalico@...hat.com>, <andy@...yhouse.net>
CC: <cwang@...pensource.com>, <jiri@...nulli.us>,
<thomas@...nzmann.de>, <eric.dumazet@...il.com>,
<sfeldma@...ulusnetworks.com>, <davem@...emloft.net>,
<netdev@...r.kernel.org>
Subject: [PATCH net-next 1/3] bonding: add bond_set_slave_state/flags()
The new function could change the slave state and flags, then call
rtmsg_ifinfo() according to the input parameters notify.
Cc: Jay Vosburgh <fubar@...ibm.com>
Cc: Veaceslav Falico <vfalico@...hat.com>
Cc: Andy Gospodarek <andy@...yhouse.net>
Signed-off-by: Ding Tianhong <dingtianhong@...wei.com>
---
drivers/net/bonding/bonding.h | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index 86ccfb9..d210124 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -303,6 +303,18 @@ static inline void bond_set_backup_slave(struct slave *slave)
}
}
+static inline void bond_set_slave_state(struct slave *slave,
+ int slave_state, bool notify)
+{
+ if (slave->backup != slave_state)
+ slave->backup = slave_state;
+ else
+ return;
+
+ if (notify)
+ rtmsg_ifinfo(RTM_NEWLINK, slave->dev, 0, GFP_KERNEL);
+}
+
static inline void bond_slave_state_change(struct bonding *bond)
{
struct list_head *iter;
@@ -408,6 +420,20 @@ static inline void bond_set_slave_active_flags(struct slave *slave)
slave->inactive = 0;
}
+static inline void bond_set_slave_flags(struct slave *slave,
+ int state, bool notify)
+
+{
+ if (state == BOND_STATE_ACTIVE) {
+ bond_set_slave_state(slave, state, notify);
+ slave->inactive = 0;
+ } else if (state == BOND_STATE_BACKUP && !bond_is_lb(slave->bond)) {
+ bond_set_slave_state(slave, state, notify);
+ if (!slave->bond->params.all_slaves_active)
+ slave->inactive = 1;
+ }
+}
+
static inline bool bond_is_slave_inactive(struct slave *slave)
{
return slave->inactive;
--
1.8.0
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists