<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 27, 2016 at 1:39 AM, Andrew Vagin <span dir="ltr">&lt;<a target="_blank" href="mailto:avagin@virtuozzo.com">avagin@virtuozzo.com</a>&gt;</span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div class="gmail-HOEnZb"><div class="gmail-h5">On Tue, Jul 26, 2016 at 04:15:35PM +0300, Pavel Emelyanov wrote:<br>
&gt; On 07/26/2016 01:42 AM, Andrew Vagin wrote:<br>
&gt; &gt; On Mon, Jul 25, 2016 at 02:26:01PM +0000, Katerina Koukiou wrote:<br>
&gt; &gt;&gt; When using --root option in criu dump, when the mountpoint passed<br>
&gt; &gt;&gt; contains a symbolic link, criu does not resolve its parent correctly.<br>
&gt; &gt;&gt; e.g when passing --root /run/rootfs, dump finishes successfully;<br>
&gt; &gt;&gt; but when /var/run/rootfs is passed, where /var/run is symbolic link to<br>
&gt; &gt;&gt; /run it exits with error &quot;New root and old root are the same&quot;.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Signed-off-by: Katerina Koukiou &lt;<a href="mailto:k.koukiou@gmail.com">k.koukiou@gmail.com</a>&gt;<br>
&gt; &gt;&gt; ---<br>
&gt; &gt;&gt;  criu/mount.c | 10 +++++++++-<br>
&gt; &gt;&gt;  1 file changed, 9 insertions(+), 1 deletion(-)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; diff --git a/criu/mount.c b/criu/mount.c<br>
&gt; &gt;&gt; index 7c280c0..0cd83af 100644<br>
&gt; &gt;&gt; --- a/criu/mount.c<br>
&gt; &gt;&gt; +++ b/criu/mount.c<br>
&gt; &gt;&gt; @@ -3420,6 +3420,8 @@ int prepare_mnt_ns(void)<br>
&gt; &gt;&gt;                    return -1;<br>
&gt; &gt;&gt;    } else {<br>
&gt; &gt;&gt;            struct mount_info *mi;<br>
&gt; &gt;&gt; +          char *ret;<br>
&gt; &gt;&gt; +          char path[PATH_MAX + 1];<br>
&gt; &gt;<br>
&gt; &gt; PATH_MAX is enough, it includes &#39;\0&#39;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;            /*<br>
&gt; &gt;&gt;             * The whole tree of mountpoints is to be moved into one<br>
&gt; &gt;&gt; @@ -3428,8 +3430,14 @@ int prepare_mnt_ns(void)<br>
&gt; &gt;&gt;             * with a single umount call later.<br>
&gt; &gt;&gt;             */<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; +          ret = realpath(opts.root, path);<br>
&gt; &gt;<br>
&gt; &gt; realpath returns a string, but a type of ret is int.<br>
&gt;<br>
&gt; No, there&#39;s new char *ret in this block :)<br>
<br>
</div></div>Sorry, I haven&#39;t noticed this. Thanks.<br></blockquote><div><br></div><div>It&#39;s ugly indeed. I can send a v2 without using ret for the check if needed.<br></div><div>Btw, any idea why the test suite currently fails on zdtm/static/helper_zombie_child<br>test on restore?<br></div><div><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
<div class="gmail-HOEnZb"><div class="gmail-h5">&gt;<br>
&gt; &gt;&gt; +          if (!ret) {<br>
&gt; &gt;&gt; +                  pr_err(&quot;Unable to find real path for %s\n&quot;, opts.root);<br>
&gt; &gt;&gt; +                  return -1;<br>
&gt; &gt;&gt; +          }<br>
&gt; &gt;&gt; +<br>
&gt; &gt;&gt;            /* moving a mount residing under a shared mount is invalid. */<br>
&gt; &gt;&gt; -          mi = mount_resolve_path(ns.mnt.mntinfo_tree, opts.root);<br>
&gt; &gt;&gt; +          mi = mount_resolve_path(ns.mnt.mntinfo_tree, path);<br>
&gt; &gt;&gt;            if (mi == NULL) {<br>
&gt; &gt;&gt;                    pr_err(&quot;Unable to find mount point for %s\n&quot;, opts.root);<br>
&gt; &gt;&gt;                    return -1;<br>
&gt; &gt;&gt; --<br>
&gt; &gt;&gt; 2.7.3<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; CRIU mailing list<br>
&gt; &gt;&gt; <a href="mailto:CRIU@openvz.org">CRIU@openvz.org</a><br>
&gt; &gt;&gt; <a target="_blank" rel="noreferrer" href="https://lists.openvz.org/mailman/listinfo/criu">https://lists.openvz.org/mailman/listinfo/criu</a><br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; CRIU mailing list<br>
&gt; &gt; <a href="mailto:CRIU@openvz.org">CRIU@openvz.org</a><br>
&gt; &gt; <a target="_blank" rel="noreferrer" href="https://lists.openvz.org/mailman/listinfo/criu">https://lists.openvz.org/mailman/listinfo/criu</a><br>
&gt; &gt; .<br>
&gt; &gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div></div>