lxc: bump version to 1.1.3
authorMarko Ratkaj <[email protected]>
Thu, 24 Sep 2015 12:57:32 +0000 (14:57 +0200)
committerLuka Perkov <[email protected]>
Sun, 27 Sep 2015 21:42:11 +0000 (23:42 +0200)
Signed-off-by: Marko Ratkaj <[email protected]>
utils/lxc/Makefile
utils/lxc/patches/035-lfd-undefined-fix.patch [new file with mode: 0644]
utils/lxc/patches/300-lxc-destroy.patch [deleted file]

index 3b2d1e435528a0fcef2aa7333a8fc4839855600b..3f266cf4b98f59e74fbad4467bd4db4dae17ee63 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lxc
-PKG_VERSION:=1.1.1
+PKG_VERSION:=1.1.3
 PKG_RELEASE:=1
 
 PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause GPL-2.0
@@ -16,7 +16,7 @@ PKG_MAINTAINER:=Luka Perkov <[email protected]>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://linuxcontainers.org/downloads/lxc/
-PKG_MD5SUM:=d80cb08f0edf36f0887e32c96aec8c13
+PKG_MD5SUM:=197abb5a28ab0b689c737eb1951023fb
 
 PKG_BUILD_DEPENDS:=lua
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/lxc/patches/035-lfd-undefined-fix.patch b/utils/lxc/patches/035-lfd-undefined-fix.patch
new file mode 100644 (file)
index 0000000..6b57e26
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/lxc/bdev.c
++++ b/src/lxc/bdev.c
+@@ -1936,3 +1936,3 @@ static int loop_mount(struct bdev *bdev)
+ {
+-      int lfd, ffd = -1, ret = -1;
++      int lfd = -1, ffd = -1, ret = -1;
+       struct loop_info64 lo;
+@@ -1974,3 +1974,3 @@ out:
+       if (ret < 0) {
+-              close(lfd);
++              if (lfd > -1) close(lfd);
+               bdev->lofd = -1;
diff --git a/utils/lxc/patches/300-lxc-destroy.patch b/utils/lxc/patches/300-lxc-destroy.patch
deleted file mode 100644 (file)
index a76e27a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-One of the 'features' of overlayfs is that depending on whether a file
-is on the upper or lower dir you get back a different device from stat.
-That breaks our lxc_rmdir_onedev.
-
-So at lxc_rmdir_ondev check the device of the directory being deleted.
-If it is overlayfs, then skip the device check.
-
-Note this is unrelated to overlayfs snapshots - in those cases when you
-delete a container, /var/lib/lxc/$container/ does not actually have an
-overlayfs under it.  Rather, to reproduce this you would
-
-sudo mkdir /opt/{lower,upper,workdir}
-sudo mount -t overlayfs -o lower=/opt/lower,upper=/opt/upper,workdir=/opt/workdir \
-       lxc /var/lib/lxc
-sudo lxc-create -t download -n c1 -- -d ubuntu -r trusty -a amd64
-sudo lxc-destroy -n c1
-
-Signed-off-by: Serge Hallyn <[email protected]>
----
- src/lxc/utils.c | 39 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 32 insertions(+), 7 deletions(-)
-
---- a/src/lxc/utils.c
-+++ b/src/lxc/utils.c
-@@ -29,6 +29,7 @@
- #include <stddef.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <sys/vfs.h>
- #include <sys/stat.h>
- #include <sys/mman.h>
- #include <sys/param.h>
-@@ -68,8 +69,8 @@
- lxc_log_define(lxc_utils, lxc);
--static int _recursive_rmdir_onedev(char *dirname, dev_t pdev,
--                                 const char *exclude, int level)
-+static int _recursive_rmdir(char *dirname, dev_t pdev,
-+                          const char *exclude, int level, bool onedev)
- {
-       struct dirent dirent, *direntp;
-       DIR *dir;
-@@ -106,7 +107,7 @@ static int _recursive_rmdir_onedev(char
-                       if (ret < 0) {
-                               switch(errno) {
-                               case ENOTEMPTY:
--                                      INFO("Not deleting snapshots");
-+                                      INFO("Not deleting snapshot %s", pathname);
-                                       hadexclude = true;
-                                       break;
-                               case ENOTDIR:
-@@ -129,14 +130,14 @@ static int _recursive_rmdir_onedev(char
-                       failed=1;
-                       continue;
-               }
--              if (mystat.st_dev != pdev)
-+              if (onedev && mystat.st_dev != pdev)
-                       continue;
-               if (S_ISDIR(mystat.st_mode)) {
--                      if (_recursive_rmdir_onedev(pathname, pdev, exclude, level+1) < 0)
-+                      if (_recursive_rmdir(pathname, pdev, exclude, level+1, onedev) < 0)
-                               failed=1;
-               } else {
-                       if (unlink(pathname) < 0) {
--                              ERROR("%s: failed to delete %s", __func__, pathname);
-+                              SYSERROR("%s: failed to delete %s", __func__, pathname);
-                               failed=1;
-                       }
-               }
-@@ -158,17 +159,41 @@ static int _recursive_rmdir_onedev(char
-       return failed ? -1 : 0;
- }
-+/* we have two different magic values for overlayfs, yay */
-+#define OVERLAYFS_SUPER_MAGIC 0x794c764f
-+#define OVERLAY_SUPER_MAGIC 0x794c7630
-+/*
-+ * In overlayfs, st_dev is unreliable.  so on overlayfs we don't do
-+ * the lxc_rmdir_onedev()
-+ */
-+static bool is_native_overlayfs(const char *path)
-+{
-+      struct statfs sb;
-+
-+      if (statfs(path, &sb) < 0)
-+              return false;
-+      if (sb.f_type == OVERLAYFS_SUPER_MAGIC ||
-+                      sb.f_type == OVERLAY_SUPER_MAGIC)
-+              return true;
-+      return false;
-+}
-+
- /* returns 0 on success, -1 if there were any failures */
- extern int lxc_rmdir_onedev(char *path, const char *exclude)
- {
-       struct stat mystat;
-+      bool onedev = true;
-+
-+      if (is_native_overlayfs(path)) {
-+              onedev = false;
-+      }
-       if (lstat(path, &mystat) < 0) {
-               ERROR("%s: failed to stat %s", __func__, path);
-               return -1;
-       }
--      return _recursive_rmdir_onedev(path, mystat.st_dev, exclude, 0);
-+      return _recursive_rmdir(path, mystat.st_dev, exclude, 0, onedev);
- }
- static int mount_fs(const char *source, const char *target, const char *type)