mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-12 09:17:44 +03:00
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:
parent
0372cb2bd2
commit
563c69c6b2
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 ++;
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user