Commit d8f8e352 by Daniel Lezcano

Fix network cleanup on error

Network cleanup does not cleanup correctly the virtual interfaces in case of an error. Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent f0e64b8b
...@@ -1702,13 +1702,19 @@ void lxc_delete_network(struct lxc_list *network) ...@@ -1702,13 +1702,19 @@ void lxc_delete_network(struct lxc_list *network)
if (netdev->ifindex == 0) if (netdev->ifindex == 0)
continue; continue;
/* Recent kernels already delete the virtual devices */ if (netdev->type == LXC_NET_PHYS) {
if (netdev->type != LXC_NET_PHYS) if (lxc_netdev_rename_by_index(netdev->ifindex, netdev->link))
WARN("failed to rename to the initial name the " \
"netdev '%s'", netdev->link);
continue; continue;
}
if (lxc_netdev_rename_by_index(netdev->ifindex, netdev->link)) /* Recent kernel remove the virtual interfaces when the network
WARN("failed to rename to the initial name the netdev '%s'", * namespace is destroyed but in case we did not moved the
netdev->link); * interface to the network namespace, we have to destroy it
*/
if (lxc_netdev_delete_by_index(netdev->ifindex))
WARN("failed to remove interface '%s'", netdev->name);
} }
} }
......
...@@ -490,7 +490,6 @@ int lxc_spawn(struct lxc_handler *handler) ...@@ -490,7 +490,6 @@ int lxc_spawn(struct lxc_handler *handler)
} }
} }
/* Create a process in a new set of namespaces */ /* Create a process in a new set of namespaces */
handler->pid = lxc_clone(do_start, handler, clone_flags); handler->pid = lxc_clone(do_start, handler, clone_flags);
if (handler->pid < 0) { if (handler->pid < 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment