lkml.org 
[lkml]   [2002]   [Nov]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.5.46: buffer layer error at fs/buffer.c:399
Martin Diehl wrote:
>
> Hi,
>
> shortly after upgrading 2.5.45->2.5.46 I got this while cp'ing some
> regular file. Source and destination was both in rootfs, which is ext2.
> It's not exactly reproducible, however apparently triggered by files
> larger than about 500KB - at least I got a few with those but never from
> smaller one.
>
> Despite this error/warning(?) the requested file was successfully copied
> (and diffed). A forced fsck on / didn't find any corruption. And it seems
> it doesn't occur if the target file exists, i.e. it's overwritten.
>
> Kernel is 2.5.46 SMP running on UP box. The new extended attributes were
> not enabled for ext2.
>
> Martin
>
> -------------------
>
> * this one was triggered by "cp file1 file2" (cwd=/root)
>
> buffer layer error at fs/buffer.c:399
> Pass this trace through ksymoops for reporting
> Call Trace:
> [<c0151db6>] __find_get_block_slow+0xe6/0x150
> [<c0152ec6>] __find_get_block+0xd6/0xf0
> [<c0153277>] unmap_underlying_metadata+0x17/0x50

This means that we had pagecache floating about which has buffers,
but those buffers had unexpected block numbers. Possibly something
went wrong during an earlier invalidation of the device during the
mount process. Do you remember if a fsck happened during that bootup?

Is there anything unusual about your setup? Using initrd? Is the
rootfs backed by a normal old disk?

Could I please see a `dumpe2fs -h' of that device?

Please, run with this patch and see if if happens again, thanks.


--- 25/fs/buffer.c~buffer-debug Sun Nov 10 16:47:31 2002
+++ 25-akpm/fs/buffer.c Sun Nov 10 16:49:59 2002
@@ -397,6 +397,9 @@ __find_get_block_slow(struct block_devic
bh = bh->b_this_page;
} while (bh != head);
buffer_error();
+ printk("block=%llu, b_blocknr=%llu\n",
+ (unsigned long long)block, (unsigned long long)bh->b_blocknr);
+ printk("b_state=0x%08lx, b_size=%u\n", bh->b_state, bh->b_size);
out_unlock:
spin_unlock(&bd_mapping->private_lock);
page_cache_release(page);
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:30    [W:0.038 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site