networkd: netdev - take ref immediately after calling out

Keeping the refcounting next to the sd_bus_call_async() makes it easier to check.
This commit is contained in:
Tom Gundersen 2014-07-03 09:43:31 +02:00
parent 0372cb2bd2
commit 563c69c6b2
5 changed files with 15 additions and 23 deletions

View File

@ -144,6 +144,8 @@ int address_drop(Address *address, Link *link,
return r;
}
link_ref(link);
return 0;
}
@ -225,6 +227,8 @@ int address_update(Address *address, Link *link,
return r;
}
link_ref(link);
return 0;
}
@ -373,6 +377,8 @@ int address_configure(Address *address, Link *link,
return r;
}
link_ref(link);
return 0;
}

View File

@ -112,6 +112,8 @@ int netdev_create_dummy(NetDev *netdev, sd_rtnl_message_handler_t callback) {
return r;
}
netdev_ref(netdev);
log_debug_netdev(netdev, "Creating dummy netdev.");
netdev->state = NETDEV_STATE_CREATING;

View File

@ -436,7 +436,6 @@ static int link_set_dhcp_routes(Link *link) {
return r;
}
link_ref(link);
link->route_messages ++;
}
@ -468,7 +467,6 @@ static int link_enter_set_routes(Link *link) {
return r;
}
link_ref(link);
link->route_messages ++;
}
@ -503,7 +501,6 @@ static int link_enter_set_routes(Link *link) {
return r;
}
link_ref(link);
link->route_messages ++;
}
}
@ -551,7 +548,6 @@ static int link_enter_set_routes(Link *link) {
return r;
}
link_ref(link);
link->route_messages ++;
route->family = AF_INET;
@ -566,7 +562,6 @@ static int link_enter_set_routes(Link *link) {
return r;
}
link_ref(link);
link->route_messages ++;
}
@ -663,7 +658,6 @@ static int link_enter_set_addresses(Link *link) {
return r;
}
link_ref(link);
link->addr_messages ++;
}
@ -699,7 +693,6 @@ static int link_enter_set_addresses(Link *link) {
return r;
}
link_ref(link);
link->addr_messages ++;
}
}
@ -760,7 +753,6 @@ static int link_enter_set_addresses(Link *link) {
return r;
}
link_ref(link);
link->addr_messages ++;
}
@ -957,7 +949,6 @@ static int dhcp_lease_lost(Link *link) {
route->dst_prefixlen = routes[i].dst_prefixlen;
route_drop(route, link, &route_drop_handler);
link_ref(link);
}
}
}
@ -978,7 +969,6 @@ static int dhcp_lease_lost(Link *link) {
route_gw->scope = RT_SCOPE_LINK;
route_drop(route_gw, link, &route_drop_handler);
link_ref(link);
}
r = route_new_dynamic(&route);
@ -987,7 +977,6 @@ static int dhcp_lease_lost(Link *link) {
route->in_addr.in = gateway;
route_drop(route, link, &route_drop_handler);
link_ref(link);
}
}
@ -1000,7 +989,6 @@ static int dhcp_lease_lost(Link *link) {
address->prefixlen = prefixlen;
address_drop(address, link, &address_drop_handler);
link_ref(link);
}
if (link->network->dhcp_mtu) {
@ -1267,7 +1255,6 @@ static int ipv4ll_address_update(Link *link, bool deprecate) {
address->broadcast.s_addr = address->in_addr.in.s_addr | htonl(0xfffffffflu >> address->prefixlen);
address_update(address, link, &address_update_handler);
link_ref(link);
}
return 0;
@ -1300,7 +1287,6 @@ static int ipv4ll_address_lost(Link *link) {
address->scope = RT_SCOPE_LINK;
address_drop(address, link, &address_drop_handler);
link_ref(link);
r = route_new_dynamic(&route);
if (r < 0) {
@ -1314,7 +1300,6 @@ static int ipv4ll_address_lost(Link *link) {
route->metrics = 99;
route_drop(route, link, &route_drop_handler);
link_ref(link);
}
return 0;
@ -1810,7 +1795,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}
@ -1834,7 +1818,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}
@ -1858,7 +1841,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}
@ -1879,7 +1861,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}
@ -1900,7 +1881,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}
@ -1921,7 +1901,6 @@ static int link_enter_enslave(Link *link) {
return r;
}
link_ref(link);
link->enslaving ++;
}

View File

@ -184,6 +184,8 @@ static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_rtnl_message_hand
return r;
}
link_ref(link);
log_debug_netdev(netdev, "enslaving link '%s'", link->ifname);
return 0;
@ -393,6 +395,7 @@ int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callbac
cb->callback = callback;
cb->link = link;
link_ref(link);
LIST_PREPEND(callbacks, netdev->callbacks, cb);
}
@ -678,8 +681,6 @@ static int netdev_load_one(Manager *manager, const char *filename) {
if (r < 0)
return r;
netdev_ref(netdev);
break;
case NETDEV_KIND_BRIDGE:
case NETDEV_KIND_BOND:

View File

@ -164,6 +164,8 @@ int route_drop(Route *route, Link *link,
return r;
}
link_ref(link);
return 0;
}
@ -235,6 +237,8 @@ int route_configure(Route *route, Link *link,
return r;
}
link_ref(link);
return 0;
}