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:[<b76f5424>] 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: [<0806bd41>] show_regs+0xc5/0xca</div><div>0a7d7cc0: [<0805a920>] panic_exit+0x25/0x3f</div><div>0a7d7cd4: [<0807b5d5>] atomic_notifier_call_chain+0x1d/0x33</div><div>0a7d7cf4: [<0807048f>] panic+0x4c/0xcf</div>
<div>0a7d7d10: [<081724cd>] xfs_hex_dump+0x0/0x7</div><div>0a7d7d1c: [<08168e26>] xfs_vm_writepage+0x226/0x656</div><div>0a7d7dbc: [<0809092f>] generic_writepages+0x164/0x27b</div><div>0a7d7e4c: [<0816926c>] xfs_vm_writepages+0x16/0x18</div>
<div>0a7d7e5c: [<08090a6a>] do_writepages+0x24/0x38</div><div>0a7d7e70: [<080bbe8b>] __writeback_single_inode+0x16d/0x2de</div><div>0a7d7ebc: [<080bc1ba>] sync_sb_inodes+0x1be/0x25c</div><div>0a7d7ef4: [<080bc299>] writeback_inodes+0x41/0x6c</div>
<div>0a7d7f08: [<080905b5>] background_writeout+0x66/0x93</div><div>0a7d7f54: [<0809106a>] pdflush+0xca/0x154</div><div>0a7d7f88: [<08080a83>] kthread+0xb6/0xe6</div><div>0a7d7fb4: [<080663ee>] run_kernel_thread+0x37/0x41</div>
<div>0a7d7fe0: [<0805acee>] new_thread_handler+0x64/0x8b</div><div>0a7d7ffc: [<a55a5a5a>] 0xa55a5a5a</div><div><br></div><div class="gmail_quote">On Mon, Aug 30, 2010 at 4:47 PM, Eric Sandeen <span dir="ltr"><<a href="mailto:sandeen@sandeen.net">sandeen@sandeen.net</a>></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>
> xfs_vm_writepage<br>
> {<br>
> /*<br>
> * A hole may still be marked uptodate because discard_buffer<br>
> * leaves the flag set.<br>
> */<br>
> if (!buffer_mapped(bh) && buffer_uptodate(bh)) {<br>
> ASSERT(!buffer_dirty(bh));<br>
> imap_valid = 0;<br>
> continue;<br>
> }<br>
> }<br>
><br>
> I met this case that buffer is marked as dirty which make assert failed.<br>
> 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 < 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>
> Thanks very much,<br>
> Mike<br>
><br>
><br>
> ------------------------------------------------------------------------<br>
><br>
> _______________________________________________<br>
> xfs mailing list<br>
> <a href="mailto:xfs@oss.sgi.com">xfs@oss.sgi.com</a><br>
> <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>