lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
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