if (!(ops = rtnl_link_af_ops_lookup(i)))
BUG();
- if ((err = cb(link, ops, link->l_af_data[i], arg)) < 0)
+ err = cb(link, ops, link->l_af_data[i], arg);
+
+ rtnl_link_af_ops_put(ops);
+
+ if (err < 0)
return err;
}
}
if ((io = link->l_info_ops) != NULL)
release_link_info(link);
+ /* proto info af reference */
rtnl_link_af_ops_put(link->l_af_ops);
nl_addr_put(link->l_addr);
char *af_data = link->l_af_data[nla_type(af_attr)];
err = af_ops->ao_parse_af(link, af_attr, af_data);
-
- rtnl_link_af_ops_put(af_ops);
-
if (err < 0)
goto errout;
}