[lxc-devel] [patch -lxc 1/2] fix inverted network interface creation

Daniel Lezcano dlezcano at fr.ibm.com
Thu Jul 22 14:31:27 UTC 2010


From: Daniel Lezcano <daniel.lezcano at free.fr>

The list is 'lifo', so when we create the network interfaces, we
do this in the reverse order of the expected one. That is confusing.

Signed-off-by: Daniel Lezcano <dlezcano at fr.ibm.com>
---
 src/lxc/confile.c |    4 ++--
 src/lxc/list.h    |    5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index 127fb37..e2c015d 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -136,7 +136,7 @@ static int config_network_type(const char *key, char *value,
 	lxc_list_init(list);
 	list->elem = netdev;
 
-	lxc_list_add(network, list);
+	lxc_list_add_tail(network, list);
 
 	if (!strcmp(value, "veth"))
 		netdev->type = LXC_NET_VETH;
@@ -178,7 +178,7 @@ static struct lxc_netdev *network_netdev(const char *key, const char *value,
 		return NULL;
 	}
 
-	netdev = lxc_list_first_elem(network);
+	netdev = lxc_list_last_elem(network);
 	if (!netdev) {
 		ERROR("no network device defined for '%s' = '%s' option",
 		      key, value);
diff --git a/src/lxc/list.h b/src/lxc/list.h
index eb4fd13..5213e80 100644
--- a/src/lxc/list.h
+++ b/src/lxc/list.h
@@ -30,6 +30,11 @@ static inline void *lxc_list_first_elem(struct lxc_list *list)
 	return list->next->elem;
 }
 
+static inline void *lxc_list_last_elem(struct lxc_list *list)
+{
+	return list->prev->elem;
+}
+
 static inline int lxc_list_empty(struct lxc_list *list)
 {
 	return list == list->next;
-- 
1.7.0.4





More information about the lxc-devel mailing list