[lxc-devel] [PATCH 3/3] c/r: allow empty networks to be checkpointed/restored
Tycho Andersen
tycho.andersen at canonical.com
Mon Aug 10 17:12:19 UTC 2015
Empty networks don't have anything (besides lo) for us to dump and restore,
so we should allow these as well.
Reported-by: Dietmar Maurer <dietmar at proxmox.com>
Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
src/lxc/criu.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/lxc/criu.c b/src/lxc/criu.c
index e1282e4..88dc8cd 100644
--- a/src/lxc/criu.c
+++ b/src/lxc/criu.c
@@ -164,6 +164,9 @@ void exec_criu(struct criu_opts *opts)
char eth[128], *veth;
struct lxc_netdev *n = it->elem;
+ if (n->type != LXC_NET_VETH)
+ continue;
+
if (n->name) {
if (strlen(n->name) >= sizeof(eth))
goto err;
@@ -304,7 +307,12 @@ bool criu_ok(struct lxc_container *c)
/* We only know how to restore containers with veth networks. */
lxc_list_for_each(it, &c->lxc_conf->network) {
struct lxc_netdev *n = it->elem;
- if (n->type != LXC_NET_VETH && n->type != LXC_NET_NONE) {
+ switch(n->type) {
+ case LXC_NET_VETH:
+ case LXC_NET_NONE:
+ case LXC_NET_EMPTY:
+ break;
+ default:
ERROR("Found network that is not VETH or NONE\n");
return false;
}
@@ -351,6 +359,10 @@ static bool restore_net_info(struct lxc_container *c)
lxc_list_for_each(it, &c->lxc_conf->network) {
struct lxc_netdev *netdev = it->elem;
char template[IFNAMSIZ];
+
+ if (netdev->type != LXC_NET_VETH)
+ continue;
+
snprintf(template, sizeof(template), "vethXXXXXX");
if (!netdev->priv.veth_attr.pair)
--
2.1.4
More information about the lxc-devel
mailing list