chiark / gitweb /
networkd: netdev - add missing refs
authorTom Gundersen <teg@jklm.no>
Mon, 7 Jul 2014 12:18:26 +0000 (14:18 +0200)
committerTom Gundersen <teg@jklm.no>
Mon, 7 Jul 2014 12:18:33 +0000 (14:18 +0200)
Without this, the underlying device would get freed (and hence
fail).

src/network/networkd-macvlan.c
src/network/networkd-tunnel.c
src/network/networkd-vlan.c
src/network/networkd-vxlan.c

index 9227144..7c23426 100644 (file)
@@ -150,6 +150,8 @@ int netdev_create_macvlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t
                 return r;
         }
 
+        link_ref(link);
+
         log_debug_netdev(netdev, "creating netdev");
 
         netdev->state = NETDEV_STATE_CREATING;
index 7341487..5a244f6 100644 (file)
@@ -529,6 +529,8 @@ int netdev_create_tunnel(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c
                 return r;
         }
 
+        link_ref(link);
+
         log_debug_netdev(netdev, "Creating tunnel netdev: %s",
                          netdev_kind_to_string(netdev->kind));
 
index 1d812fd..8727b9f 100644 (file)
@@ -139,6 +139,8 @@ int netdev_create_vlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t cal
                 return r;
         }
 
+        link_ref(link);
+
         log_debug_netdev(netdev, "creating netdev");
 
         netdev->state = NETDEV_STATE_CREATING;
index 8832024..1604594 100644 (file)
@@ -154,6 +154,8 @@ int netdev_create_vxlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t ca
                 return r;
         }
 
+        link_ref(link);
+
         log_debug_netdev(netdev, "Creating vxlan netdev: %s",
                          netdev_kind_to_string(netdev->kind));