Signed-off-by: Hangbin Liu <liuhang...@gmail.com>
---
 drivers/net/bonding/bond_netlink.c | 148 +++++++++++++------------------------
 1 file changed, 52 insertions(+), 96 deletions(-)

diff --git a/drivers/net/bonding/bond_netlink.c 
b/drivers/net/bonding/bond_netlink.c
index 47a8103..e745ca3 100644
--- a/drivers/net/bonding/bond_netlink.c
+++ b/drivers/net/bonding/bond_netlink.c
@@ -39,21 +39,13 @@ static int bond_fill_slave_info(struct sk_buff *skb,
 {
        struct slave *slave = bond_slave_get_rtnl(slave_dev);
 
-       if (nla_put_u8(skb, IFLA_BOND_SLAVE_STATE, bond_slave_state(slave)))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_SLAVE_MII_STATUS, slave->link))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
-                       slave->link_failure_count))
-               goto nla_put_failure;
-
-       if (nla_put(skb, IFLA_BOND_SLAVE_PERM_HWADDR,
-                   slave_dev->addr_len, slave->perm_hwaddr))
-               goto nla_put_failure;
-
-       if (nla_put_u16(skb, IFLA_BOND_SLAVE_QUEUE_ID, slave->queue_id))
+       if (nla_put_u8(skb, IFLA_BOND_SLAVE_STATE, bond_slave_state(slave)) ||
+           nla_put_u8(skb, IFLA_BOND_SLAVE_MII_STATUS, slave->link) ||
+           nla_put_u32(skb, IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
+                       slave->link_failure_count) ||
+           nla_put(skb, IFLA_BOND_SLAVE_PERM_HWADDR,
+                   slave_dev->addr_len, slave->perm_hwaddr) ||
+           nla_put_u16(skb, IFLA_BOND_SLAVE_QUEUE_ID, slave->queue_id))
                goto nla_put_failure;
 
        if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) {
@@ -64,13 +56,11 @@ static int bond_fill_slave_info(struct sk_buff *skb,
                agg = SLAVE_AD_INFO(slave)->port.aggregator;
                if (agg) {
                        if (nla_put_u16(skb, IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
-                                       agg->aggregator_identifier))
-                               goto nla_put_failure;
-                       if (nla_put_u8(skb,
+                                       agg->aggregator_identifier) ||
+                           nla_put_u8(skb,
                                       IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
-                                      ad_port->actor_oper_port_state))
-                               goto nla_put_failure;
-                       if (nla_put_u16(skb,
+                                      ad_port->actor_oper_port_state) ||
+                           nla_put_u16(skb,
                                        
IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
                                        ad_port->partner_oper.port_state))
                                goto nla_put_failure;
@@ -525,21 +515,14 @@ static int bond_fill_info(struct sk_buff *skb,
        if (ifindex && nla_put_u32(skb, IFLA_BOND_ACTIVE_SLAVE, ifindex))
                goto nla_put_failure;
 
-       if (nla_put_u32(skb, IFLA_BOND_MIIMON, bond->params.miimon))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_UPDELAY,
-                       bond->params.updelay * bond->params.miimon))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_DOWNDELAY,
-                       bond->params.downdelay * bond->params.miimon))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_USE_CARRIER, bond->params.use_carrier))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_ARP_INTERVAL, bond->params.arp_interval))
+       if (nla_put_u32(skb, IFLA_BOND_MIIMON, bond->params.miimon) ||
+           nla_put_u32(skb, IFLA_BOND_UPDELAY,
+                       bond->params.updelay * bond->params.miimon) ||
+           nla_put_u32(skb, IFLA_BOND_DOWNDELAY,
+                       bond->params.downdelay * bond->params.miimon) ||
+           nla_put_u8(skb, IFLA_BOND_USE_CARRIER, bond->params.use_carrier) ||
+           nla_put_u32(skb, IFLA_BOND_ARP_INTERVAL,
+                       bond->params.arp_interval))
                goto nla_put_failure;
 
        targets = nla_nest_start(skb, IFLA_BOND_ARP_IP_TARGET);
@@ -560,10 +543,9 @@ static int bond_fill_info(struct sk_buff *skb,
        else
                nla_nest_cancel(skb, targets);
 
-       if (nla_put_u32(skb, IFLA_BOND_ARP_VALIDATE, bond->params.arp_validate))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_ARP_ALL_TARGETS,
+       if (nla_put_u32(skb, IFLA_BOND_ARP_VALIDATE,
+                       bond->params.arp_validate) ||
+           nla_put_u32(skb, IFLA_BOND_ARP_ALL_TARGETS,
                        bond->params.arp_all_targets))
                goto nla_put_failure;
 
@@ -573,34 +555,20 @@ static int bond_fill_info(struct sk_buff *skb,
                goto nla_put_failure;
 
        if (nla_put_u8(skb, IFLA_BOND_PRIMARY_RESELECT,
-                      bond->params.primary_reselect))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_FAIL_OVER_MAC,
-                      bond->params.fail_over_mac))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_XMIT_HASH_POLICY,
-                      bond->params.xmit_policy))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_RESEND_IGMP,
-                       bond->params.resend_igmp))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_NUM_PEER_NOTIF,
-                      bond->params.num_peer_notif))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_ALL_SLAVES_ACTIVE,
-                      bond->params.all_slaves_active))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_MIN_LINKS,
-                       bond->params.min_links))
-               goto nla_put_failure;
-
-       if (nla_put_u32(skb, IFLA_BOND_LP_INTERVAL,
+                      bond->params.primary_reselect) ||
+           nla_put_u8(skb, IFLA_BOND_FAIL_OVER_MAC,
+                      bond->params.fail_over_mac) ||
+           nla_put_u8(skb, IFLA_BOND_XMIT_HASH_POLICY,
+                      bond->params.xmit_policy) ||
+           nla_put_u32(skb, IFLA_BOND_RESEND_IGMP,
+                       bond->params.resend_igmp) ||
+           nla_put_u8(skb, IFLA_BOND_NUM_PEER_NOTIF,
+                      bond->params.num_peer_notif) ||
+           nla_put_u8(skb, IFLA_BOND_ALL_SLAVES_ACTIVE,
+                      bond->params.all_slaves_active) ||
+           nla_put_u32(skb, IFLA_BOND_MIN_LINKS,
+                       bond->params.min_links) ||
+           nla_put_u32(skb, IFLA_BOND_LP_INTERVAL,
                        bond->params.lp_interval))
                goto nla_put_failure;
 
@@ -610,14 +578,10 @@ static int bond_fill_info(struct sk_buff *skb,
                goto nla_put_failure;
 
        if (nla_put_u8(skb, IFLA_BOND_AD_LACP_RATE,
-                      bond->params.lacp_fast))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_AD_SELECT,
-                      bond->params.ad_select))
-               goto nla_put_failure;
-
-       if (nla_put_u8(skb, IFLA_BOND_TLB_DYNAMIC_LB,
+                      bond->params.lacp_fast) ||
+           nla_put_u8(skb, IFLA_BOND_AD_SELECT,
+                      bond->params.ad_select) ||
+           nla_put_u8(skb, IFLA_BOND_TLB_DYNAMIC_LB,
                       bond->params.tlb_dynamic_lb))
                goto nla_put_failure;
 
@@ -626,14 +590,10 @@ static int bond_fill_info(struct sk_buff *skb,
 
                if (capable(CAP_NET_ADMIN)) {
                        if (nla_put_u16(skb, IFLA_BOND_AD_ACTOR_SYS_PRIO,
-                                       bond->params.ad_actor_sys_prio))
-                               goto nla_put_failure;
-
-                       if (nla_put_u16(skb, IFLA_BOND_AD_USER_PORT_KEY,
-                                       bond->params.ad_user_port_key))
-                               goto nla_put_failure;
-
-                       if (nla_put(skb, IFLA_BOND_AD_ACTOR_SYSTEM,
+                                       bond->params.ad_actor_sys_prio) ||
+                           nla_put_u16(skb, IFLA_BOND_AD_USER_PORT_KEY,
+                                       bond->params.ad_user_port_key) ||
+                           nla_put(skb, IFLA_BOND_AD_ACTOR_SYSTEM,
                                    sizeof(bond->params.ad_actor_system),
                                    &bond->params.ad_actor_system))
                                goto nla_put_failure;
@@ -646,18 +606,14 @@ static int bond_fill_info(struct sk_buff *skb,
                                goto nla_put_failure;
 
                        if (nla_put_u16(skb, IFLA_BOND_AD_INFO_AGGREGATOR,
-                                       info.aggregator_id))
-                               goto nla_put_failure;
-                       if (nla_put_u16(skb, IFLA_BOND_AD_INFO_NUM_PORTS,
-                                       info.ports))
-                               goto nla_put_failure;
-                       if (nla_put_u16(skb, IFLA_BOND_AD_INFO_ACTOR_KEY,
-                                       info.actor_key))
-                               goto nla_put_failure;
-                       if (nla_put_u16(skb, IFLA_BOND_AD_INFO_PARTNER_KEY,
-                                       info.partner_key))
-                               goto nla_put_failure;
-                       if (nla_put(skb, IFLA_BOND_AD_INFO_PARTNER_MAC,
+                                       info.aggregator_id) ||
+                           nla_put_u16(skb, IFLA_BOND_AD_INFO_NUM_PORTS,
+                                       info.ports) ||
+                           nla_put_u16(skb, IFLA_BOND_AD_INFO_ACTOR_KEY,
+                                       info.actor_key) ||
+                           nla_put_u16(skb, IFLA_BOND_AD_INFO_PARTNER_KEY,
+                                       info.partner_key) ||
+                           nla_put(skb, IFLA_BOND_AD_INFO_PARTNER_MAC,
                                    sizeof(info.partner_system),
                                    &info.partner_system))
                                goto nla_put_failure;
-- 
2.5.5

Reply via email to