Bug 4894
Summary: | BUG at fs/jfs/jfs_dmap.c:2722 assert(bsz < le32_to_cpu(tp->dmt_nleafs)) | ||
---|---|---|---|
Product: | File System | Reporter: | Max Alekseyev (relf) |
Component: | JFS | Assignee: | Dave Kleikamp (shaggy) |
Status: | RESOLVED CODE_FIX | ||
Severity: | high | ||
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.12.2 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: | Replace asserts with sane error handling |
Description
Max Alekseyev
2005-07-16 01:53:06 UTC
The assert() statement is the wrong thing to do here. The code somehow stumbled on some data in the block map that is inconsistent. The right thing would be to return -EIO and mark the superblock dirty, so that fsck rebuild the block map. What kind of activity was going on? Were large files being written to? Lots of files in parallel? Any other errors that might have triggered an I/O error? I'm not sure what was a reason for the bug to happen but as a result a large file was found cross-linked with several small ones, so fsck.jfs deleted them all. Created attachment 6278 [details]
Replace asserts with sane error handling
I'm not sure what the initial cause of the problem is, but this patch will fix the oops. |