xfs
[Top] [All Lists]

hitting the BUG() in filemap.c:843 (in unlock_page())

To: linux-xfs <linux-xfs@xxxxxxxxxxx>
Subject: hitting the BUG() in filemap.c:843 (in unlock_page())
From: Luben Tuikov <luben@xxxxxxxxxxxx>
Date: Wed, 16 Oct 2002 00:41:33 -0400
Organization: Splentec Ltd.
Sender: linux-xfs-bounce@xxxxxxxxxxx
Hello,

We have this scenario:

xfs -> vg (simplest setup, LVM) -> md (raid5) -> SCSI LLDD.

When md is set up with 3 (odd #) devices, then
a mount sleeps indefinitely on down(), and when
md is set up with 4 devices, then the kernel
oopses at filemap.c:843 in unlock_page() the BUG()
statement.

The stack (of an SMP system) just prior to the
oops is attached below. 

Now I've only been looking briefly at the code
but have already noticed that _end_pagebuf_page_io_multi()
does a unlock_page(), I'd guess for a good reason.
It nevertheless breaks when set up with the above scenario.
My guess would be that there's a wrong assumption somewhere.

((The same scenario, but with ext2 fs, doesn't oops.))

Can you please provide any hints?

TIA,
-- 
Luben

>>EIP; c0135e65 <unlock_page+45/70>   <=====
Trace; c027c2ea <_end_pagebuf_page_io_multi+da/100>
Trace; c027c32f <_end_io_multi_full+1f/30>
Trace; c0317cb0 <handle_stripe+900/ec0>
Trace; c0318470 <raid5_make_request+120/160>
Trace; c031dde2 <md_make_request+82/90>
Trace; c02b01d1 <generic_make_request+e1/140>
Trace; f88abc08 <[3w-xxxx]tw_post_command_packet+38/120>
Trace; c027c310 <_end_io_multi_full+0/30>
Trace; c027c59c <_pagebuf_page_io+22c/500>
Trace; c027c95a <_page_buf_page_apply+ea/1a0>
Trace; c027cf18 <_pagebuf_segment_apply+f8/120>
Trace; c027ca92 <pagebuf_iorequest+82/170>
Trace; c027b3b6 <_pagebuf_lookup_pages+2b6/330>
Trace; c027c0a8 <pagebuf_iostart+88/c0>
Trace; c027b8d2 <pagebuf_get+132/150>
Trace; c026e570 <xfs_trans_read_buf+320/380>
Trace; c0252aa4 <xfs_ialloc_read_agi+64/110>
Trace; c027bddf <pagebuf_rele+af/e0>
Trace; c025be3a <xfs_bulkstat+1fa/e80>
Trace; c02a4469 <serial_in+19/30>
Trace; c02a9fe0 <serial_console_write+120/220>
Trace; c0218bb0 <xfs_qm_quotacheck+100/190>
Trace; c02187f0 <xfs_qm_dqusage_adjust+0/2c0>
Trace; c0216c8e <xfs_qm_mount_quotas+ae/230>
Trace; c025e05c <xfs_log_mount_finish+2c/30>
Trace; c0267f06 <xfs_mountfs+996/11f0>
Trace; c0267209 <xfs_readsb+99/100>
Trace; c02708c7 <xfs_cmountfs+247/2f0>
Trace; c02709ef <xfs_mount+7f/90>
Trace; c02876e2 <linvfs_read_super+162/2d0>
Trace; c014ccfa <alloc_super+3a/1b0>
Trace; c014d6d2 <get_sb_bdev+1b2/2a0>
Trace; c014cc4b <get_fs_type+3b/b0>
Trace; c014da74 <do_kern_mount+124/140>
Trace; c01628f3 <do_add_mount+93/1a0>
Trace; c0162c30 <do_mount+160/1d0>
Trace; c0162a79 <copy_mount_options+79/d0>
Trace; c016313f <sys_mount+df/140>
Trace; c01094ab <system_call+33/38>


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