On 2012-08-13, at 9:04, Theodore Ts'o <tytso@xxxxxxx> wrote: > I had an idea which I think would make inline directories more > efficient, although it wouldn't be a backwards compatible change with > the existing patch sets to date. > > We don't actually need to store the entry for '.', since we know what > that should be, and we could just store the parent directory in a > 4-byte entry. > By not storing the full directory entries for "." and > "..", we would save 20 bytes, which for a 256 byte inode where only > 120 bytes or so are available for the inline directory, is pretty > significant. (We can just synthesize them for the benefit of readdir > and lookup --- and I'm pretty sure the VFS is doing its own synthesis > for "." and possibly ".." already as far as lookup is concerned.) One concern is that we have expanded the dentries for "." and ".." to store the Lustre FID in the expanded dirent. The "." dirent isn't needed for in-inode directories, and I suppose we could get the Lustre ".." FID from the "link" xattr (parent inode+name) already stored in the inode as well... Both are useful for robustness with external directory files, but they aren't useful inside the inode. Other than that, it seems reasonable to economize on space inside the inode. It makes the handling a bit more complex. Cheers, Andreas-- 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