Hello community, here is the log from the commit of package criu for openSUSE:Factory checked in at 2017-04-03 11:05:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/criu (Old) and /work/SRC/openSUSE:Factory/.criu.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "criu" Mon Apr 3 11:05:23 2017 rev:31 rq:484227 version:2.12.1 Changes: -------- --- /work/SRC/openSUSE:Factory/criu/criu.changes 2017-03-22 23:18:23.386847079 +0100 +++ /work/SRC/openSUSE:Factory/.criu.new/criu.changes 2017-04-03 11:06:03.511624680 +0200 @@ -1,0 +2,10 @@ +Fri Mar 31 14:49:05 CEST 2017 - tiwai@suse.de + +- update to criu 2.12.1: + Fixes: + * Content for external bind mounts was erroneously dumped, which + could lead to dump failures or huuuge images + * Unneeded collection of host mounts on restore could cause + restore to fail + +------------------------------------------------------------------- Old: ---- criu-2.12.tar.bz2 New: ---- criu-2.12.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ criu.spec ++++++ --- /var/tmp/diff_new_pack.5rvAlV/_old 2017-04-03 11:06:04.215525230 +0200 +++ /var/tmp/diff_new_pack.5rvAlV/_new 2017-04-03 11:06:04.219524665 +0200 @@ -17,7 +17,7 @@ Name: criu -Version: 2.12 +Version: 2.12.1 Release: 0 Summary: Checkpoint/Restore In Userspace Tools License: GPL-2.0 ++++++ criu-2.12.tar.bz2 -> criu-2.12.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/criu-2.12/Makefile.versions new/criu-2.12.1/Makefile.versions --- old/criu-2.12/Makefile.versions 2017-03-08 19:45:51.000000000 +0100 +++ new/criu-2.12.1/Makefile.versions 2017-03-27 20:44:22.000000000 +0200 @@ -2,7 +2,7 @@ # CRIU version. CRIU_VERSION_MAJOR := 2 CRIU_VERSION_MINOR := 12 -CRIU_VERSION_SUBLEVEL := +CRIU_VERSION_SUBLEVEL := 1 CRIU_VERSION_EXTRA := CRIU_VERSION_NAME := Vulcanite Rook CRIU_VERSION := $(CRIU_VERSION_MAJOR)$(if $(CRIU_VERSION_MINOR),.$(CRIU_VERSION_MINOR))$(if $(CRIU_VERSION_SUBLEVEL),.$(CRIU_VERSION_SUBLEVEL))$(if $(CRIU_VERSION_EXTRA),.$(CRIU_VERSION_EXTRA)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/criu-2.12/criu/mount.c new/criu-2.12.1/criu/mount.c --- old/criu-2.12/criu/mount.c 2017-03-08 19:45:51.000000000 +0100 +++ new/criu-2.12.1/criu/mount.c 2017-03-27 20:44:22.000000000 +0200 @@ -1263,13 +1263,14 @@ if (me.fstype == FSTYPE__AUTO) me.fsname = pm->fsname; + if (!pm->external) { + if (!pm->dumped && dump_one_fs(pm)) + return -1; - if (!pm->dumped && dump_one_fs(pm)) - return -1; - - if (!fsroot_mounted(pm) && - pm->fstype->check_bindmount && pm->fstype->check_bindmount(pm)) - return -1; + if (!fsroot_mounted(pm) && + pm->fstype->check_bindmount && pm->fstype->check_bindmount(pm)) + return -1; + } if (pm->mnt_id == CRTIME_MNT_ID) { pr_info("Skip dumping cr-time mountpoint: %s\n", pm->mountpoint); @@ -2901,7 +2902,6 @@ int prepare_mnt_ns(void) { int ret = -1, rst = -1; - struct mount_info *old; struct ns_id ns = { .type = NS_CRIU, .ns_pid = PROC_SELF, .nd = &mnt_ns_desc }; struct ns_id *nsid; @@ -2910,27 +2910,30 @@ pr_info("Restoring mount namespace\n"); - old = collect_mntinfo(&ns, false); - if (old == NULL) - return -1; - if (!opts.root) { + struct mount_info *old; + if (chdir("/")) { pr_perror("chdir(\"/\") failed"); return -1; } + old = collect_mntinfo(&ns, false); + if (old == NULL) + return -1; /* * The new mount namespace is filled with the mountpoint * clones from the original one. We have to umount them * prior to recreating new ones. */ pr_info("Cleaning mount namespace\n"); - if (mnt_tree_for_each_reverse(ns.mnt.mntinfo_tree, do_umount_one)) + if (mnt_tree_for_each_reverse(ns.mnt.mntinfo_tree, do_umount_one)) { + free_mntinfo(old); return -1; - } + } - free_mntinfo(old); + free_mntinfo(old); + } ret = populate_mnt_ns(); if (ret)