Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs is pretty new.<div>the block size is 512 and use mmap for test with write and read compare. (xfstest 074).</div><div><br></div><div>If I ignored this ASSERT(comment out), the test will failed. I guess because some pages never written to disk.<br>
<br></div><div><div>Assertion failed: !buffer_dirty(bh), file: fs/xfs/linux-2.6/xfs_aops.c, line: 1399</div><div>BUG: failure at fs/xfs/support/debug.c:108/assfail()!</div><div>Kernel panic - not syncing: BUG!</div><div> </div>
<div>EIP: 0073:[&lt;b76f5424&gt;] CPU: 0 Not tainted ESP: 007b:b75a6fa8 EFLAGS: 00000246</div><div>    Not tainted</div><div>EAX: 00000000 EBX: 00000e97 ECX: 00000013 EDX: 00000e97</div><div>ESI: 00000e93 EDI: 00000011 EBP: b75a6fc4 DS: 007b ES: 007b</div>
<div>0a7d7c94:  [&lt;0806bd41&gt;] show_regs+0xc5/0xca</div><div>0a7d7cc0:  [&lt;0805a920&gt;] panic_exit+0x25/0x3f</div><div>0a7d7cd4:  [&lt;0807b5d5&gt;] atomic_notifier_call_chain+0x1d/0x33</div><div>0a7d7cf4:  [&lt;0807048f&gt;] panic+0x4c/0xcf</div>
<div>0a7d7d10:  [&lt;081724cd&gt;] xfs_hex_dump+0x0/0x7</div><div>0a7d7d1c:  [&lt;08168e26&gt;] xfs_vm_writepage+0x226/0x656</div><div>0a7d7dbc:  [&lt;0809092f&gt;] generic_writepages+0x164/0x27b</div><div>0a7d7e4c:  [&lt;0816926c&gt;] xfs_vm_writepages+0x16/0x18</div>
<div>0a7d7e5c:  [&lt;08090a6a&gt;] do_writepages+0x24/0x38</div><div>0a7d7e70:  [&lt;080bbe8b&gt;] __writeback_single_inode+0x16d/0x2de</div><div>0a7d7ebc:  [&lt;080bc1ba&gt;] sync_sb_inodes+0x1be/0x25c</div><div>0a7d7ef4:  [&lt;080bc299&gt;] writeback_inodes+0x41/0x6c</div>
<div>0a7d7f08:  [&lt;080905b5&gt;] background_writeout+0x66/0x93</div><div>0a7d7f54:  [&lt;0809106a&gt;] pdflush+0xca/0x154</div><div>0a7d7f88:  [&lt;08080a83&gt;] kthread+0xb6/0xe6</div><div>0a7d7fb4:  [&lt;080663ee&gt;] run_kernel_thread+0x37/0x41</div>
<div>0a7d7fe0:  [&lt;0805acee&gt;] new_thread_handler+0x64/0x8b</div><div>0a7d7ffc:  [&lt;a55a5a5a&gt;] 0xa55a5a5a</div><div><br></div><div class="gmail_quote">On Mon, Aug 30, 2010 at 4:47 PM, Eric Sandeen <span dir="ltr">&lt;<a href="mailto:sandeen@sandeen.net">sandeen@sandeen.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">Mike Gao wrote:<br>
&gt; xfs_vm_writepage<br>
&gt; {<br>
&gt;                /*<br>
&gt; * A hole may still be marked uptodate because discard_buffer<br>
&gt; * leaves the flag set.<br>
&gt; */<br>
&gt; if (!buffer_mapped(bh) &amp;&amp; buffer_uptodate(bh)) {<br>
&gt; ASSERT(!buffer_dirty(bh));<br>
&gt; imap_valid = 0;<br>
&gt; continue;<br>
&gt; }<br>
&gt; }<br>
&gt;<br>
&gt; I met this case that buffer is marked as dirty which make assert failed.<br>
&gt; What does this mean and what I can do with it?<br>
<br>
</div></div>You can report it here, with more information on what load you were running,<br>
and the full backtrace that the ASSERT generated... thanks!<br>
<br>
And it means that we think we are in a hole, but the buffer for<br>
that hole is marked dirty, which we did not expect ...<br>
<br>
The change went in with this commit:<br>
<br>
3d9b02e3c76531687ab5314e0edf266256f13c2d xfs: fix corruption case for block size &lt; page size<br>
<br>
which was attempting to fix a very specific file corruption case.<br>
<br>
What kernel are you running on?<br>
<br>
What block size are you using?  (xfs_info will tell you)<br>
<br>
Thanks,<br>
-Eric<br>
<br>
&gt; Thanks very much,<br>
&gt; Mike<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; xfs mailing list<br>
&gt; <a href="mailto:xfs@oss.sgi.com">xfs@oss.sgi.com</a><br>
&gt; <a href="http://oss.sgi.com/mailman/listinfo/xfs" target="_blank">http://oss.sgi.com/mailman/listinfo/xfs</a><br>
<br>
</blockquote></div><br></div>