Zbigniew Jędrzejewski-Szmek 43ff24
From 65b8b293a6a8560fc1d6eecf7712f870d597965b Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 43ff24
From: Tom Gundersen <teg@jklm.no>
Zbigniew Jędrzejewski-Szmek 43ff24
Date: Mon, 7 Jul 2014 14:18:26 +0200
Zbigniew Jędrzejewski-Szmek 43ff24
Subject: [PATCH] networkd: netdev - add missing refs
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
Without this, the underlying device would get freed (and hence
Zbigniew Jędrzejewski-Szmek 43ff24
fail).
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
(cherry picked from commit e04468dec04a968c523ee09da7d2163a1d1a5a15)
Zbigniew Jędrzejewski-Szmek 43ff24
---
Zbigniew Jędrzejewski-Szmek 43ff24
 src/network/networkd-macvlan.c | 2 ++
Zbigniew Jędrzejewski-Szmek 43ff24
 src/network/networkd-tunnel.c  | 2 ++
Zbigniew Jędrzejewski-Szmek 43ff24
 src/network/networkd-vlan.c    | 2 ++
Zbigniew Jędrzejewski-Szmek 43ff24
 src/network/networkd-vxlan.c   | 2 ++
Zbigniew Jędrzejewski-Szmek 43ff24
 4 files changed, 8 insertions(+)
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/src/network/networkd-macvlan.c b/src/network/networkd-macvlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
index 9227144531..7c234264ac 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/src/network/networkd-macvlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/src/network/networkd-macvlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -150,6 +150,8 @@ int netdev_create_macvlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t
Zbigniew Jędrzejewski-Szmek 43ff24
                 return r;
Zbigniew Jędrzejewski-Szmek 43ff24
         }
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
+        link_ref(link);
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
         log_debug_netdev(netdev, "creating netdev");
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
         netdev->state = NETDEV_STATE_CREATING;
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/src/network/networkd-tunnel.c b/src/network/networkd-tunnel.c
Zbigniew Jędrzejewski-Szmek 43ff24
index 7341487795..5a244f61b0 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/src/network/networkd-tunnel.c
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/src/network/networkd-tunnel.c
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -529,6 +529,8 @@ int netdev_create_tunnel(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c
Zbigniew Jędrzejewski-Szmek 43ff24
                 return r;
Zbigniew Jędrzejewski-Szmek 43ff24
         }
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
+        link_ref(link);
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
         log_debug_netdev(netdev, "Creating tunnel netdev: %s",
Zbigniew Jędrzejewski-Szmek 43ff24
                          netdev_kind_to_string(netdev->kind));
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/src/network/networkd-vlan.c b/src/network/networkd-vlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
index 1d812fdcaa..8727b9f103 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/src/network/networkd-vlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/src/network/networkd-vlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -139,6 +139,8 @@ int netdev_create_vlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t cal
Zbigniew Jędrzejewski-Szmek 43ff24
                 return r;
Zbigniew Jędrzejewski-Szmek 43ff24
         }
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
+        link_ref(link);
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
         log_debug_netdev(netdev, "creating netdev");
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
         netdev->state = NETDEV_STATE_CREATING;
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/src/network/networkd-vxlan.c b/src/network/networkd-vxlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
index 8832024ef1..160459450d 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/src/network/networkd-vxlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/src/network/networkd-vxlan.c
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -154,6 +154,8 @@ int netdev_create_vxlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t ca
Zbigniew Jędrzejewski-Szmek 43ff24
                 return r;
Zbigniew Jędrzejewski-Szmek 43ff24
         }
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
+        link_ref(link);
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
         log_debug_netdev(netdev, "Creating vxlan netdev: %s",
Zbigniew Jędrzejewski-Szmek 43ff24
                          netdev_kind_to_string(netdev->kind));
Zbigniew Jędrzejewski-Szmek 43ff24