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 9227144531203301c4dbbeaeb0f33c29306e0e7f..7c234264acec9931ce86dc8fdf844b94f1b2711f 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 734148779544a5b841532b7e70070033a53c6dad..5a244f61b00c770fe3c8a483bcb78f60fe2c9fa0 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 1d812fdcaa7b16843ae1280f53ec7470d5e4a7c3..8727b9f103d427ec9e18109081a0c1014c9ef1d7 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 8832024ef1f36c295b6610a99661beb2de8592f8..160459450de0e488c5c24f1394ba5cb4993b651e 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));