<div dir="ltr"><div><div><div>Hi all,<br><br></div>I checked for that update in the repo, but I couldn&#39;t find it, so based in that diff output I modified the file.c, recompiled with &#39;make&#39; and tried again the mtouch test. It failed again with the same &quot;Pre-dump failed&quot; error. <br>

</div><br>I remade again the info files that Andrew asked the last time, there are some differences with the old ones (less errors but the same error at the end), find them attached. I also attached my files.c file (just in case you want to check if I modified it correctly).<br>

<br></div><div>Meanwhile I&#39;m working on try the mtouch test on 3.13 kernel.<br><br></div><div>Thanks.<br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-31 9:23 GMT+02:00 Andrew Vagin <span dir="ltr">&lt;<a href="mailto:avagin@parallels.com" target="_blank">avagin@parallels.com</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Sun, Mar 30, 2014 at 02:30:40PM +0400, Cyrill Gorcunov wrote:<br>
&gt; On Sun, Mar 30, 2014 at 01:41:43PM +0400, Andrew Vagin wrote:<br>
&gt; &gt; On Sat, Mar 29, 2014 at 10:44:03PM +0400, Cyrill Gorcunov wrote:<br>
&gt; &gt; &gt; From cd6596469161ea85ffb03b0f2ab576509e83a187 Mon Sep 17 00:00:00 2001<br>
&gt; &gt; &gt; From: Cyrill Gorcunov &lt;<a href="mailto:gorcunov@openvz.org">gorcunov@openvz.org</a>&gt;<br>
&gt; &gt; &gt; Date: Sat, 29 Mar 2014 22:43:14 +0400<br>
&gt; &gt; &gt; Subject: [PATCH] files: predump_one_fd -- Use direct read of pid&#39;s fd link<br>
&gt;<br>
&gt; Attached<br>
<br>
</div></div>Acked-by: Andrew Vagin &lt;<a href="mailto:avagin@parallels.com">avagin@parallels.com</a>&gt;<br>
<br>
&gt; From e33563110d586d3e52ef4a5d438be0038d0c450f Mon Sep 17 00:00:00 2001<br>
<div class="">&gt; From: Cyrill Gorcunov &lt;<a href="mailto:gorcunov@openvz.org">gorcunov@openvz.org</a>&gt;<br>
&gt; Date: Sat, 29 Mar 2014 22:43:14 +0400<br>
&gt; Subject: [PATCH] files: predump_one_fd -- Use direct read of pid&#39;s fd link<br>
&gt;<br>
</div><div class="">&gt; Using O_PATH known to be buggy on 3.11 kernel so use<br>
&gt; direct link reading procedure here.<br>
&gt;<br>
&gt; Signed-off-by: Cyrill Gorcunov &lt;<a href="mailto:gorcunov@openvz.org">gorcunov@openvz.org</a>&gt;<br>
&gt; ---<br>
&gt;  files.c | 34 ++++++++++------------------------<br>
&gt;  1 file changed, 10 insertions(+), 24 deletions(-)<br>
&gt;<br>
&gt; diff --git a/files.c b/files.c<br>
</div>&gt; index 3cf5e470c5c0..9f0c69141a88 100644<br>
<div class="">&gt; --- a/files.c<br>
&gt; +++ b/files.c<br>
&gt; @@ -405,33 +405,20 @@ err:<br>
&gt;<br>
&gt;  static int predump_one_fd(int pid, int fd)<br>
&gt;  {<br>
&gt; -     int lfd, ret = 0;<br>
&gt; -     struct statfs buf;<br>
&gt;       const struct fdtype_ops *ops;<br>
&gt; -     char link[32];<br>
&gt; -<br>
&gt; -     /*<br>
&gt; -      * This should look like the dump_task_files_seized,<br>
&gt; -      * but since we pre-dump only *notify-s, we use the<br>
&gt; -      * enightened version without fds draining.<br>
&gt; -      */<br>
&gt; -<br>
&gt; -     lfd = __open_proc(pid, O_PATH | O_RDONLY, &quot;fd/%d&quot;, fd);<br>
&gt; -     if (lfd &lt; 0)<br>
&gt; -             return 0; /* That&#39;s OK, it can be a socket */<br>
</div>&gt; +     char link[PATH_MAX], t[32];<br>
<div class="im HOEnZb">&gt; +     int ret = 0;<br>
&gt;<br>
&gt; -     if (fstatfs(lfd, &amp;buf)) {<br>
&gt; -             pr_perror(&quot;Can&#39;t fstatfs file&quot;);<br>
&gt; +     snprintf(t, sizeof(t), &quot;/proc/%d/fd/%d&quot;, pid, fd);<br>
&gt; +     ret = readlink(t, link, sizeof(link));<br>
&gt; +     if (ret &lt; 0) {<br>
&gt; +             pr_perror(&quot;Can&#39;t read link of fd %d&quot;, fd);<br>
&gt; +             return -1;<br>
&gt; +     } else if ((size_t)ret == sizeof(link)) {<br>
&gt; +             pr_err(&quot;Buffer for read link of fd %d is too small\n&quot;, fd);<br>
&gt;               return -1;<br>
&gt;       }<br>
</div><div class="HOEnZb"><div class="h5">&gt; -<br>
&gt; -     if (buf.f_type != ANON_INODE_FS_MAGIC)<br>
&gt; -             goto out;<br>
&gt; -<br>
&gt; -     if (read_fd_link(lfd, link, sizeof(link)) &lt; 0) {<br>
&gt; -             ret = -1;<br>
&gt; -             goto out;<br>
&gt; -     }<br>
&gt; +     link[ret] = 0;<br>
&gt;<br>
&gt;       if (is_inotify_link(link))<br>
&gt;               ops = &amp;inotify_dump_ops;<br>
&gt; @@ -443,7 +430,6 @@ static int predump_one_fd(int pid, int fd)<br>
&gt;       pr_debug(&quot;Pre-dumping %d&#39;s %d fd\n&quot;, pid, fd);<br>
&gt;       ret = ops-&gt;pre_dump(pid, fd);<br>
&gt;  out:<br>
&gt; -     close(lfd);<br>
&gt;       return ret;<br>
&gt;  }<br>
&gt;<br>
&gt; --<br>
&gt; 1.8.3.1<br>
&gt;<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Óscar Fernández<br>
</div>