<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}
p
        {margin-top:0px;
        margin-bottom:0px}
body
        {font-size:16pt;
        font-family:微软雅黑;
        color:rgb(0,128,0);
        line-height:1.5}
-->
</style>
</head>
<body>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-family:Calibri; text-align:justify">the dlm lock migration(A-&gt;B) may lead to&nbsp;</span><span style="font-family:Calibri; text-align:justify; font-size:16pt; line-height:1.5">&nbsp;lvb
 difference.&nbsp;</span></font></span></div>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-family:Calibri; text-align:justify; font-size:16pt; line-height:1.5">&nbsp;1. A node migrage dlm lock, &nbsp;while flags=4(</span><span style="font-family:Calibri; font-size:16pt; line-height:1.5">DLM_LKSB_GET_LVB</span><span style="font-family:Calibri; font-size:16pt; line-height:1.5; text-align:justify">)</span></font></span></div>
<div><font color="#000000"><span style="background-color:rgb(255,255,255); font-family:Calibri; font-size:16pt; line-height:1.5; text-align:justify">&nbsp;2. B node update lock lvb, &nbsp;just when flags=2(</span><span style="background-color:rgb(255,255,255); font-family:Calibri; font-size:16pt; line-height:1.5">DLM_LK</span><font face="Calibri"><span style="background-color:rgb(255,255,255)"><span style="line-height:1.5">SB_PU</span><span style="line-height:1.5">T_LVB),&nbsp;</span></span></font></font><span style="font-family:Calibri; color:rgb(0,0,0); font-size:16pt; line-height:1.5; background-color:window">&nbsp;</span><span style="font-family:Calibri; color:rgb(0,0,0); font-size:16pt; line-height:1.5; background-color:window">So
 this will be a lvb update problem.</span></div>
<div><font color="#000000" face="Calibri">in the&nbsp;</font><span style="color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:1.5">dlm_process_recovery_data, &nbsp;</span><span style="font-size:16pt; line-height:1.5; background-color:window; color:rgb(0,0,0); font-family:Calibri">DLM_LKSB_GET_LVB&nbsp;</span><span style="font-size:16pt; background-color:window; line-height:normal"><font color="#000000" face="Calibri">instead
 of&nbsp;</font></span><span style="font-size:16pt; line-height:1.5; background-color:window; color:rgb(0,0,0); font-family:Calibri">DLM_LK</span><font face="Calibri" style="font-size:16pt; line-height:1.5; background-color:window; color:rgb(0,0,0)"><span style="line-height:1.5">SB_PU</span><span style="line-height:1.5">T_LVB.</span></font></div>
<div><span style="font-family:Calibri; color:rgb(0,0,0)">if (!dlm_lvb_is_empty(mres-&gt;lvb)) {
<br>
-if (lksb-&gt;flags &amp; DLM_LKSB_PUT_LVB) {</span></div>
<div><span style="font-family:Calibri; color:rgb(0,0,0)">&#43;</span><span style="color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:1.5; background-color:window">if (lksb-&gt;flags &amp; DLM_LKSB_GET_LVB) {</span></div>
<div>
<pre><font color="#000000" face="Calibri"><span style="background-color:rgb(255,255,255)"><span style="line-height:1.5">t</span><span style="line-height:1.5">he patch ensures that the other valid locks have the </span></span></font><span style="color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:1.5">sa</span><span style="color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:1.5">me a LVB by updating </span><span style="color:rgb(0,0,0); font-family:Calibri; font-size:16pt; line-height:normal; white-space:normal">to solute the problem of BUGs in the migrage dlm lock&nbsp;</span></pre>
<pre><pre><font color="#000000" face="Calibri"><span style="background-color:rgb(255,255,255)">Finally, any feedback about this process (positive or negative) would be  greatly appreciated.</span></font></pre></pre>
</div>
<div><span style="font-family:Calibri; text-align:justify; background-color:rgb(255,255,255)"><font color="#000000">A Node:</font></span></div>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000">May 25 14:37:29 cvk12 kernel: [ 1166.838861] AAAAA: dlm_add_lock_to_array, send ml info: type=3, conv=5, node=12,
<b>flags=4,</b> list=1, cookie=12:1063 <br>
May 25 14:37:29 cvk12 kernel: [ 1166.838862] mres lvb: 05000000000000dd00000000000000001558b0a8a12d3bec1558b0a6036067131558b0a603606713000000000de0000081800001000000005a7219b300000000
<br>
May 25 14:37:29 cvk12 kernel: [ 1166.838887] lock lksb lvb: 05000000000000dd00000000000000001558b0a8a12d3bec1558b0a6036067131558b0a603606713000000000de0000081800001000000005a7219b300000000</font></span></div>
<div><span style=""><br>
</span></div>
<div><br>
</div>
<hr color="#b5c4df" size="1" align="left" style="width:210px; height:1px">
<div><span>
<div style="margin:10px; font-family:verdana; font-size:10pt">
<div>zhangguanghui 10102</div>
</div>
</span></div>
<blockquote style="margin-top:0px; margin-bottom:0px; margin-left:0.5em">
<div>&nbsp;</div>
<div style="border:none; border-top:solid #B5C4DF 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<div style="padding-right:8px; padding-left:8px; font-size:12px; font-family:tahoma; color:#000000; background:#efefef; padding-bottom:8px; padding-top:8px">
<div><b>From:</b>&nbsp;<a href="mailto:guozhonghua@h3c.com">guozhonghua 02084 (RD)</a></div>
<div><b>Date:</b>&nbsp;2015-05-25&nbsp;16:22</div>
<div><b>To:</b>&nbsp;<a href="mailto:ocfs2-devel@oss.oracle.com">ocfs2-devel@oss.oracle.com</a>;
<a href="mailto:ocfs2-devel-request@oss.oracle.com">ocfs2-devel-request@oss.oracle.com</a></div>
<div><b>CC:</b>&nbsp;<a href="mailto:shi.changkuo@h3c.com">shichangkuo</a>; <a href="mailto:zhang.guanghui@h3c.com">
zhangguanghui 10102 (RD)</a>; <a href="mailto:changlimin@h3c.com">changlimin 00148</a></div>
<div><b>Subject:</b>&nbsp;LVB patch for reviews, thanks</div>
</div>
</div>
<div>
<div class="FoxDiv20150525195958617413">
<p dir="LTR" align="JUSTIFY"><span lang="en-us"></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">As dlm lock LVB different, the dlm lock migration may be failed without the dlm lock.</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">So the new owner will not have the dlm lock with the node, such as cookie 10:2696 as below.</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">diff -cp dlmrecovery_org.c dlmrecovery.c
</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">*** dlmrecovery_org.c&nbsp;&nbsp; 2015-05-25 09:53:05.530826236 &#43;0800</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">--- dlmrecovery.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2015-05-25 10:01:12.242839116 &#43;0800</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">*************** static void dlm_prepare_lvb_for_migratio</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">*** 1194,1199 ****</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">--- 1194,1203 ----</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (</font><font face="Calibri">!lock-&gt;lksb)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; </font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&#43; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dlm_lvb_is_empty(lock-&gt;lksb-&gt;lvb)) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&#43; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&#43; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&#43; </font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Ignore lvb in all locks in the blocked list */</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (queue == DLM_BLOCKED_LIST)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font></span></p>
<br>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542596] (umo</font><font face="Calibri">unt,20349,2):dlm_prepare_lvb_for_migration:1235 ERROR: Mismatched lvb in lock cookie=10:2696, name=M00000000000000017a012300000000,
 node=10</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542603] lockres: M00000000000000017a012300000000, owner=8, state=32</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:4</font><font face="Calibri">5:51 cvk60 kernel: [&nbsp; 868.542604]&nbsp;&nbsp; last used: 0, refcnt: 12, on purge list: no</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542606]&nbsp;&nbsp; on dirty list: no, on reco list: no, migrating pending: no</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542607]&nbsp;&nbsp; inflight locks: 0, asts</font><font face="Calibri"> reserved: 0</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542608]&nbsp;&nbsp; refmap nodes: [ 1 2 3 5 6 7 9 10 11 12 ], inflight=0</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542613]&nbsp;&nbsp; res lvb: 05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000</font><font face="Calibri">004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542636]&nbsp;&nbsp; granted queue:</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542638]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=7, cookie=7:2863, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542639]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:050000000000004</font><font face="Calibri">50000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542664]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=10, cookie=10:2696, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n),</font><font face="Calibri"> pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542665]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542668]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=12, cookie=12:2528, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(co</font><font face="Calibri">nv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542669]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.5</font><font face="Calibri">42694]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=11, cookie=11:1308, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542695]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155</font><font face="Calibri">863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542719]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=3, cookie=3:6315, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unloc</font><font face="Calibri">k=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542720]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542745]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1</font><font face="Calibri">, node=6, cookie=6:3745, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542746]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbd</font><font face="Calibri">c0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542771]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=9, cookie=9:2746, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 k</font><font face="Calibri">ernel: [&nbsp; 868.542772]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542797]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=2, cookie=2:7003, ref</font><font face="Calibri">=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542798]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc000000000460000081800001000</font><font face="Calibri">0000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542822]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=1, cookie=1:1921, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542823]&nbsp;&nbsp;&nbsp;&nbsp; lo</font><font face="Calibri">ck lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542848]&nbsp;&nbsp;&nbsp;&nbsp; type=3, conv=-1, node=5, cookie=5:2841, ref=2, ast=(empty=y,pend=n), ba</font><font face="Calibri">st=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542849]&nbsp;&nbsp;&nbsp;&nbsp; lock lvb:05000000000000450000000000000000155863770a7adf68155863764986bbdc155863764986bbdc0000000004600000818000010000000046c6e83500000000</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24</font><font face="Calibri"> 16:45:51 cvk60 kernel: [&nbsp; 868.542873]&nbsp;&nbsp; converting queue:</font></span></p>
<p dir="LTR" align="JUSTIFY"><span lang="en-us"><font face="Calibri">May 24 16:45:51 cvk60 kernel: [&nbsp; 868.542874]&nbsp;&nbsp; blocked queue:</font></span></p>
<br>
</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:&quot;Arial&quot;,&quot;sans-serif&quot;; 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>