<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="auto">
<div><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">1 авг. 2017 г. 16:50 пользователь Kirill Tkhai &lt;ktkhai@virtuozzo.com&gt; написал:<br type="attribution">
<blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><font size="2"><span style="font-size:10pt">
<div>On 01.08.2017 14:16, Stanislav Kinsburskiy wrote:<br>
&gt; SUNRPC task can have no RPC client, but RPC request instead (this is a piece<br>
&gt; of NFSv4.1 callback magic).<br>
&gt; In this case network has be taken from tk-&gt;rqstp object.<br>
&gt; <br>
&gt; Signed-off-by: Stanislav Kinsburskiy &lt;skinsbursky@virtuozzo.com&gt;<br>
&gt; ---<br>
&gt;&nbsp; net/sunrpc/clnt.c |&nbsp;&nbsp;&nbsp; 9 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;-<br>
&gt;&nbsp; 1 file changed, 8 insertions(&#43;), 1 deletion(-)<br>
&gt; <br>
&gt; diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c<br>
&gt; index 4a2fe46..e87dc47 100644<br>
&gt; --- a/net/sunrpc/clnt.c<br>
&gt; &#43;&#43;&#43; b/net/sunrpc/clnt.c<br>
&gt; @@ -2625,9 &#43;2625,16 @@ void rpc_task_kill_proc_fini(struct net *net)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remove_proc_entry(&quot;kill-tasks&quot;, sn-&gt;proc_net_rpc);<br>
&gt;&nbsp; }<br>
&gt;&nbsp; <br>
&gt; &#43;static struct net *rpc_task_net(struct rpc_task *task)<br>
&gt; &#43;{<!-- --><br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; if (task-&gt;tk_client)<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return rpc_net_ns(task-&gt;tk_client);<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; return task-&gt;tk_rqstp-&gt;rq_xprt-&gt;xprt_net;<br>
&gt; &#43;}<br>
&gt; &#43;<br>
&gt;&nbsp; bool rpc_abort_task(struct rpc_task *task)<br>
&gt;&nbsp; {<!-- --><br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; struct net *net = rpc_net_ns(task-&gt;tk_client);<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; struct net *net = rpc_task_net(task);<br>
<br>
I have no objections, but just for sure, are there places we also need such changes?<br>
</div>
</span></font></div>
</blockquote>
</div>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">I don't think so.</div>
<div dir="auto">This is my code, and this is a silly mistake.</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><font size="2"><span style="font-size:10pt">
<div><br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);<br>
&gt;&nbsp; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!sn-&gt;kill_tasks)<br>
&gt; <br>
</div>
</span></font></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</body>
</html>