> No, reiserfs allows you to store the last non-block-aligned tail part > of a file in the tree nodes themselves, rather than taking up a whole > block. Reiserfs does definitely give you good small-file efficiency > as a result. > > There are tail-merging patches for ext2 to do the same, btw. We've > been looking at whether that can be adapted for ext3 extended > attributes --- if so, we can get ext3 tails stored in an EA and > achieve the same sort of space efficiency that reiserfs gains with its > own tail merging. What I'd rather see is "directory readahead". I.e., make the allocator put all the files (that it can) for a directory in the same sequence of blocks. And have it allocate inodes for a directory out of the same sequence of inodes. Then have a read_the_whole_dir() interface that is invoked when you go to disk for Nth time in the same interface. In 2 I/O's you fill the block layer with the data and now we're running like cold cache is hot cache. See what I mean? And no ondisk format changes, as far as I can tell, "just" allocator changes. "Just" because I understand the complexity. -- --- Larry McVoy lm at bitmover.com http://www.bitmover.com/lm