On Wed, Aug 04, 2010 at 04:51:31PM +0200, Miklos Szeredi wrote:
Okay, added.
Simply, Al Viro didn't like it. But note that the current
implementation still uses part of the hash table solution. You still
have union_dir structures external to dentries for the read-only
layers of the stack. The change is from Al's observation that the
topmost dentry could only be part of one stack. Why do a lookup on
the topmost dentry when you could keep an pointer to the stack in the
dentry itself and skip the lookup? Once you have the head of the
stack, you don't need lookup for the rest of it. This eliminates all
the lookup machinery and the union hash table lock, which seems like a
big win to me.
The biggest drawback of the hash table in my mind was that it
introduced a new global synchronization point in lookup. Making it go
fast would be dcache lookup optimization all over again.
Thanks,
-VAL
--