Messages in this thread | | | Date | Mon, 15 Apr 2002 22:31:33 -0700 | From | "David C. Hansen" <> | Subject | Re: OOPS caused by ext2 changes |
| |
Andrew Morton wrote:
>Dave Hansen wrote: > >>Andrew Morton and I discused this earlier. I have some more information >>now. The problem: "dbench 64" run on a small (~120meg) partition with >>1k block sizes produces Oopses. >> >>This changeset: >>http://linus.bkbits.net:8080/linux-2.5/patch@1.248.2.6?nav=index.html|ChangeSet|cset@1.248.2.6 >>is the culprit. Without it applied, none of this happens. >> >However it seems that there's potential for a buffer reference >leak in ext2_get_branch: > >See, sb_bread() bumps b_count, but on the `goto changed;' >branch we lose track of that buffer. > >b_count is only 16 bits, so it's conceivable that the >count wraps to zero, and that is fatal. > >It would be interesting to replace that `goto changed;' >with { __brelse(bh); goto changed; }. Plus maybe a >debug printk to see if we are indeed hitting that path. > Well, I'm a little bit clearer about what's going on now. I noticed that verify_chain() is inline, and that is what is actually Oopsing. Any idea how we're getting 8 into edx?
edx: 00000008 Code; c013dea4 <__brelse+4/20> <===== 0: 8b 42 14 mov 0x14(%edx),%eax <=====
Is the Indirect array getting junk into it?
- 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/
| |