Messages in this thread | | | Date | Fri, 18 Jul 2008 14:00:13 +0100 | From | "Duane Griffin" <> | Subject | Re: latest -git: A peculiar case of a stuck process (ext3/sched-related?) |
| |
2008/7/18 Vegard Nossum <vegard.nossum@gmail.com>: > And the ext3_find_entry() corresponds to this line: > > for (; de < top; de = ext3_next_entry(de)) /* <--- HERE! */ > if (ext3_match (namelen, name, de)) { > if (!ext3_check_dir_entry("ext3_find_entry", > dir, de, bh, > (block<<EXT3_BLOCK_SIZE_BITS(sb)) > +((char *)de - bh->b_data))) { > brelse (bh); > *err = ERR_BAD_DX_DIR; > goto errout; > } > *res_dir = de; > dx_release (frames); > return bh; > } > > Is it possible that this loop can get stuck with a corrupt filesystem image?
It certainly is. This is the same problem as the first case reported at http://bugzilla.kernel.org/show_bug.cgi?id=10882. There is a patch in -mm for it already (2fde9f7a0faabe821b31ccd982d482c21f7c503f), posted here: http://marc.info/?l=linux-kernel&m=121486328013470.
Hopefully that should fix the problem for you.
Cheers, Duane.
-- "I never could learn to drink that blood and call it wine" - Bob Dylan
| |