[Top] [All Lists]

Re: bug in fs/xfs/xfs_aops.c:959! (kernel 3.1.5)

To: Jeremy Sanders <jeremy@xxxxxxxxxxxxxxxxx>
Subject: Re: bug in fs/xfs/xfs_aops.c:959! (kernel 3.1.5)
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 28 Dec 2011 12:16:43 -0500
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <jcn0ip$hsk$1@xxxxxxxxxxxxxxx>
References: <jcn0ip$hsk$1@xxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Dec 19, 2011 at 09:36:24AM +0000, Jeremy Sanders wrote:
> Hello - this was just produced in kernel 3.1.5 (Fedora 16, x86-64, 
> kernel-3.1.5-1.fc16.x86_64).

Line 959 in 3.1.5 is this:

        bh = head = page_buffers(page);

page_buffers expands to:

#define page_buffers(page)                                      \
        ({                                                      \
                BUG_ON(!PagePrivate(page));                     \
                ((struct buffer_head *)page_private(page));     \

so what we got here is a page without buffers.  Very odd.

[<ffffffff8111dec7>]  __writepage+0x17/0x40
[<ffffffff8111e32d>]  write_cache_pages+0x20d/0x460
[<ffffffff8111e5ca>]  generic_writepages+0x4a/0x70
[<ffffffffa02eb8fd>]  xfs_vm_writepages+0x4d/0x60 [xfs]
[<ffffffff8111f8d1>]  do_writepages+0x21/0x40
[<ffffffff81198af9>]  writeback_single_inode+0x149/0x3e0
[<ffffffff81198f30>]  writeback_sb_inodes+0x1a0/0x240
[<ffffffff8119906e>]  __writeback_inodes_wb+0x9e/0xd0
[<ffffffff8119a25b>]  wb_writeback+0x25b/0x340
[<ffffffff8119a7b3>]  wb_do_writeback+0x1c3/0x200
[<ffffffff8119a873>]  bdi_writeback_thread+0x83/0x2a0
[<ffffffff8108ddbc>]  kthread+0x8c/0xa0
[<ffffffff815d9974>]  kernel_thread_helper+0x4/0x10

And this looks like an entirely normal callchain for the flusher thread.

Something must have set the page dirty without going through the normal
XFS codepath.  Did you use any interesting virtualization things, or
utrace / systemtap or anything odd?

<Prev in Thread] Current Thread [Next in Thread>