<p dir="ltr"><br>
On Oct 12, 2015 11:18, &quot;Pavel Emelyanov&quot; &lt;<a href="mailto:xemul@parallels.com">xemul@parallels.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On 10/12/2015 11:14 AM, Cyrill Gorcunov wrote:<br>
&gt; &gt; On Mon, Oct 12, 2015 at 11:06:32AM +0300, Pavel Emelyanov wrote:<br>
&gt; &gt;&gt; On 10/10/2015 11:07 AM, Cyrill Gorcunov wrote:<br>
&gt; &gt;&gt;&gt; In debian-8 container we faced the problem -- systemd<br>
&gt; &gt;&gt;&gt; creates nested mount namespaces and inotify watchee<br>
&gt; &gt;&gt;&gt; are resolved into a path which is inaccessbile on<br>
&gt; &gt;&gt;&gt; restore (because we&#39;re operating in task&#39;s mount<br>
&gt; &gt;&gt;&gt; namespace). So here is a dirty hack for now -- choose<br>
&gt; &gt;&gt;&gt; the widest mount point as a reference. The proper<br>
&gt; &gt;&gt;&gt; fix requires kernel patching.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; How about Andrey&#39;s patch that saved mnt-id for an inotify?<br>
&gt; &gt;<br>
&gt; &gt; This won&#39;t work on its own. Please look at the second patch<br>
&gt; &gt; I send into the reply of this one. We need mnt_id but the<br>
&gt; &gt; path may be inaccessible during the restore because the<br>
&gt; &gt; restore comes in another mount namespace where the former<br>
&gt; &gt; path is no longer accessbile.<br>
&gt;<br>
&gt; But we do know the namespace the path come from, why do we ever<br>
&gt; _guess_ anything instead of just going to that ns and opening<br>
&gt; the file there?</p>
<p dir="ltr">Here is a problem that we can open a handle from a bind-mount where this file is unavailable by path.</p>
<p dir="ltr">For example:</p>
<p dir="ltr">mount /dev/xxx /<br>
mount --bind /var/yyy /zzz<br>
inotify_add_watch(&quot;/test&quot;)<br>
Read handle from /proc/pid/fdinfo/inotify_fd<br>
FD = open_handlat(&quot;/zzz&quot;, handle)</p>
<p dir="ltr">readlink /proc/pid/fd/FD<br>
/zzz/test</p>
<p dir="ltr">&gt;<br>
&gt; -- Pavel<br>
&gt;<br>
</p>