<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
<!--
body
        {line-height:1.5}
blockquote
        {margin-top:0px;
        margin-bottom:0px;
        margin-left:0.5em}
body
        {font-size:16pt;
        font-family:微软雅黑;
        color:rgb(0,128,0);
        line-height:1.5}
-->
</style>
</head>
<body>
<div><font color="#000000" face="Calibri"><span></span><br>
</font></div>
<div>
<div><font color="#000000" face="Calibri">Hi</font></div>
<div><font color="#000000" face="Calibri">1. in the callback o2net_fill_node_map -> <span style="line-height:1.5">o2net_tx_can_proceed()</span></font></div>
<div><font color="#000000" face="Calibri"><span style="line-height:1.5">2. </span><span style="line-height:1.5">if the function o2net_tx_can_proceed returns false, then </span><span style="line-height:1.5">"ret" and sc are uninialized,</span></font></div>
<div><font color="#000000" face="Calibri"><span style="line-height:1.5">and re-using the value from the </span><span style="line-height:1.5">previous iteration. </span><span style="line-height:1.5">I think this is not reasonable.</span><span style="line-height:1.5"> </span></font></div>
<div><font color="#000000" face="Calibri"><span style="line-height:1.5">I d</span><span style="line-height:1.5">o not know w</span><span style="line-height:1.5">hether to hide a</span><span style="line-height:1.5"> bug. </span></font></div>
<div><font color="#000000" face="Calibri"><font style="line-height:1.5"><span style="line-height:1.5">checking the return value is harmless and </span></font><span style="line-height:1.5">robustness.</span></font></div>
<div>
<pre><font color="#000000" face="Calibri">Finally, any feedback about this process (positive or negative) would be greatly appreciated.</font></pre>
</div>
<div>
<pre><font color="#000000" face="Calibri">/* Get a map of all nodes to which this node is currently connected to */
<br>void o2net_fill_node_map(unsigned long *map, unsigned bytes)<br>{<br>        struct o2net_sock_container *sc = NULL;<br>        int node, ret = 0;<br>        BUG_ON(bytes < (BITS_TO_LONGS(O2NM_MAX_NODES) * sizeof(unsigned long)));<br>        memset(map, 0, bytes);<br>        for (node = 0; node < O2NM_MAX_NODES; ++node) {<br>                if (!o2net_tx_can_proceed(o2net_nn_from_num(node), &sc, &ret))<br>                        continue;<br>                if (!ret) {<br>                        set_bit(node, map);<br>                        sc_put(sc)</font></pre>
<pre><span style="background-color:window; color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:1.5"> }</span></pre>
<pre><font color="#000000" face="Calibri"><span style="line-height:1.5"> </span><span style="line-height:1.5">+</span><span style="line-height:1.5"> </span><span style="line-height:1.5">sc = NULL;</span><span style="line-height:1.5"> </span></font></pre>
<pre><font color="#000000" face="Calibri"><span style="line-height:1.5"> + </span><span style="line-height:1.5">ret=0;</span></font></pre>
<pre><font color="#000000" face="Calibri">        } <br>}</font></pre>
</div>
</div>
<blockquote style="margin-top:0px; margin-bottom:0px; margin-left:0.5em">
<div>
<div class="FoxDiv20150606210912386820">
<blockquote style="margin-top:0px; margin-bottom:0px; margin-left:0.5em">
<div>
<div class="FoxDiv20150525195958617413"><br>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<span style="font-size:7.5pt; font-family:华文细黑; color:gray"><span lang="EN-US">-------------------------------------------------------------------------------------------------------------------------------------<br>
</span>本邮件及其附件含有杭州华三通信技术有限公司的保密信息,仅限于发送给上面地址中列出<span lang="EN-US"><br>
</span>的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、<span lang="EN-US"><br>
</span>或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本<span lang="EN-US"><br>
</span>邮件!<span lang="EN-US"><br>
</span></span><span lang="EN-US" style="font-size:7.5pt; font-family:"Arial","sans-serif"; color:gray">This e-mail and its attachments contain confidential information from H3C, which is
<br>
intended only for the person or entity whose address is listed above. Any use of the
<br>
information contained herein in any way (including, but not limited to, total or partial
<br>
disclosure, reproduction, or dissemination) by persons other than the intended <br>
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender
<br>
by phone or email immediately and delete it!</span>
</body>
</html>