Eric Sandeen wrote: >> Well, having something like "ext3_dir_bread()" that verifies the leaf block >> once if (!uptodate()) would be almost the same as ext2 with fairly little >> effort. It would help performance in several places, at the slight risk >> of not handling in-memory corruption after the block is read... > > How about just tweaking the existing ext3_bread so that it lets the > caller know whether or not it found an uptodate buffer? Seems > conceivable that more than just the dir code might want to do a data > sanity check, based on if this is a fresh read or not. > > Could maybe even change the *err argument to a *retval; negative on > errors, else 0 == not read (found uptodate), 1 == fresh read (not found > uptodate). Or is that too much overloading... I played around with this a little bit today, and it seems to have some tangible results. A fairly unsophisticated test of running "find" over my whole root filesystem 10 times :) with and without re-checking cached directory entries, yielded about a 10% speedup when skipping the re-checks. Is this something we want to do? Are we comfortable with only checking directory entries the first time they are read from disk? -Eric - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html