Thread (29 messages) 29 messages, 4 authors, 2012-08-15

Re: [PATCH V5 00/23] ext4: Add inline data support.

From: Andreas Dilger <hidden>
Date: 2012-08-14 02:43:46

On 2012-08-13, at 9:04, Theodore Ts'o [off-list ref] 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help