[PATCH] xfs: fix an assertion failure

From: zwu . kernel
Date: Thu Jul 25 2013 - 09:38:26 EST


From: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx>

When running the compilebench, one assertion failure was found.
This related line of code was introduced by commit 5f6bed76c0.

commit 5f6bed76c0c85cb4d04885a5de00b629deee550b
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu Jun 27 16:04:52 2013 +1000

xfs: Introduce an ordered buffer item

[ 500.464036] XFS: Assertion failed: !(bip->bli_item.li_flags & XFS_LI_IN_AIL), file: fs/xfs/xfs_buf_item.c, line: 942
[ 500.465602] ------------[ cut here ]------------
[ 500.466258] kernel BUG at fs/xfs/xfs_message.c:108!
[ 500.466440] invalid opcode: 0000 [#1] SMP
[ 500.466440] Modules linked in:
[ 500.466440] CPU: 0 PID: 40 Comm: kworker/u2:1 Not tainted 3.11.0-rc2+ #955
[ 500.466440] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 500.466440] Workqueue: writeback bdi_writeback_workfn (flush-8:0)
[ 500.466440] task: ffff880292260000 ti: ffff880292250000 task.ti: ffff880292250000
[ 500.466440] RIP: 0010:[<ffffffff812dc6f2>] [<ffffffff812dc6f2>] assfail+0x22/0x30
[ 500.466440] RSP: 0018:ffff8802922515f8 EFLAGS: 00010292
[ 500.466440] RAX: 0000000000000068 RBX: ffff880289b4a570 RCX: 0000000000000006
[ 500.466440] RDX: 0000000000000006 RSI: ffff880292260788 RDI: ffff880292260000
[ 500.466440] RBP: ffff8802922515f8 R08: 0000000000000000 R09: 0000000000000001
[ 500.466440] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880291828000
[ 500.466440] R13: ffff880289b4a570 R14: ffffffff81342aeb R15: ffff88025f344220
[ 500.466440] FS: 0000000000000000(0000) GS:ffff88029fc00000(0000) knlGS:0000000000000000
[ 500.466440] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 500.466440] CR2: 0000000009b01008 CR3: 0000000291874000 CR4: 00000000000006f0
[ 500.466440] Stack:
[ 500.466440] ffff880292251628 ffffffff813428df ffff880289b4a570 0000000000000002
[ 500.466440] ffff880291828000 0000000000000001 ffff880292251668 ffffffff81342aeb
[ 500.466440] 0000000000000000 ffff880289b4a570 ffff8802762070a0 ffffffffffffffff
[ 500.466440] Call Trace:
[ 500.466440] [<ffffffff813428df>] xfs_buf_item_relse+0x4f/0xd0
[ 500.466440] [<ffffffff81342aeb>] xfs_buf_item_unlock+0x18b/0x1e0
[ 500.466440] [<ffffffff8133ac3d>] xfs_trans_free_items+0x7d/0xb0
[ 500.466440] [<ffffffff8133b35c>] xfs_trans_cancel+0x13c/0x1b0
[ 500.466440] [<ffffffff812d8d89>] xfs_iomap_write_allocate+0x249/0x350
[ 500.466440] [<ffffffff812c6af2>] xfs_map_blocks+0x2e2/0x350
[ 500.466440] [<ffffffff812c7a76>] xfs_vm_writepage+0x236/0x5e0
[ 500.466440] [<ffffffff8115174a>] __writepage+0x1a/0x50
[ 500.466440] [<ffffffff81152065>] write_cache_pages+0x225/0x4a0
[ 500.466440] [<ffffffff81151730>] ? mapping_tagged+0x20/0x20
[ 500.466440] [<ffffffff812c5e45>] ? xfs_vm_writepages+0x35/0x70
[ 500.466440] [<ffffffff8115232d>] generic_writepages+0x4d/0x70
[ 500.466440] [<ffffffff812c5e60>] xfs_vm_writepages+0x50/0x70
[ 500.466440] [<ffffffff81153cb1>] do_writepages+0x21/0x50
[ 500.466440] [<ffffffff811d4050>] __writeback_single_inode+0x40/0x230
[ 500.466440] [<ffffffff811d52b1>] writeback_sb_inodes+0x291/0x460
[ 500.466440] [<ffffffff811d551f>] __writeback_inodes_wb+0x9f/0xd0
[ 500.466440] [<ffffffff811d579b>] wb_writeback+0x24b/0x2e0
[ 500.466440] [<ffffffff8115185a>] ? global_dirtyable_memory+0x1a/0x60
[ 500.466440] [<ffffffff811d7386>] bdi_writeback_workfn+0x1d6/0x3d0
[ 500.466440] [<ffffffff8107734b>] process_one_work+0x1eb/0x4f0
[ 500.466440] [<ffffffff810772e9>] ? process_one_work+0x189/0x4f0
[ 500.466440] [<ffffffff81077adb>] worker_thread+0x11b/0x370
[ 500.466440] [<ffffffff810779c0>] ? rescuer_thread+0x330/0x330
[ 500.466440] [<ffffffff8107ff8a>] kthread+0xea/0xf0
[ 500.466440] [<ffffffff8107fea0>] ? flush_kthread_work+0x1b0/0x1b0
[ 500.466440] [<ffffffff818b6c5c>] ret_from_fork+0x7c/0xb0
[ 500.466440] [<ffffffff8107fea0>] ? flush_kthread_work+0x1b0/0x1b0
[ 500.466440] Code: 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 f1 41 89 d0 48 c7 c6 48 b7 c7 81 48 89 fa 31 c0 48 89 e5 31 ff e8 de fb ff ff <0f> 0b 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48
[ 500.466440] RIP [<ffffffff812dc6f2>] assfail+0x22/0x30
[ 500.466440] RSP <ffff8802922515f8>
[ 500.510159] ---[ end trace 48b882d5f764ca11 ]---

Signed-off-by: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx>
---
fs/xfs/xfs_buf_item.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index bfc4e0c..b4d42ae 100644
--- a/fs/xfs/xfs_buf_item.c
+++ b/fs/xfs/xfs_buf_item.c
@@ -939,7 +939,6 @@ xfs_buf_item_relse(
xfs_buf_log_item_t *bip = bp->b_fspriv;

trace_xfs_buf_item_relse(bp, _RET_IP_);
- ASSERT(!(bip->bli_item.li_flags & XFS_LI_IN_AIL));

bp->b_fspriv = bip->bli_item.li_bio_list;
if (bp->b_fspriv == NULL)
--
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/