Re: Fw: [POSSIBLE-BUG] telldir() broken on ext3 dir_index'ddirectories just after the first entry.

From: Stephen C. Tweedie
Date: Wed Nov 17 2004 - 19:07:34 EST


Hi,

On Wed, 2004-11-17 at 22:34, Theodore Ts'o wrote:

> Here is a patch which causes d_off of '.' to be 1, and for seekdir(1)
> to cause readdir to return the directory entry of '..'.

Doesn't this make things worse? The old problem was that
seekdir/telldir were broken (which we already knew for certain cases
like hash collisions). But with...

> + start_hash=2;

don't we end up silently ignoring all dirents with a major hash <= 1,
even for unbroken getdents() with no intervening seekdir? Previously
we'd at least fill them into the rbtree, so sequential readdir would
find them even if the hash collided. Now we'll skip them entirely.

If we're going to do this, I think we need to stuff . and .. into the
rbtree with the right hashes, but without ignoring other existing
dirents with colliding hashes.

--Stephen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/