Miklos, This patch set completes the known 'debt' for the NFS export work and is available with the rest if the 'debt' and fixes on my github [1]. Patch 2 is a cosmetic re-factoring of dcache name hash functions. I tried hard to make sure there is no-change to existing users. Please double check me on that. To verify optimization, I ran all the overlay/exportfs tests, which are now upstream. I added prints to real fs decode functions to verify they are not called when decoding a lower dir file handle of a deleted dir. To verify the hash function, I added prints inside iget5_locked() to check when an inode is added to an empty hash list and then I ran some tests to populate cache with a few 1000 upper or lower inodes. When populated with pure upper inodes, the hash values were far less random (pointer values) and out of 2000 inodes there were 1-5 hash collisions depending on the test run. When populated with pure lower inodes, the hash values seemed more random and out of 2000 inodes there were 3-4 hash collisions depending on the test run. So for a quick test that seem to indicate that the file handle hash function is at least better than the real inode hash. The real lower file handles were xfs file handles all with the same uuid, with sequential 64-bit inode numbers and zero generation (xfs inodes on a newly formatted fs). I guess it is possible to improve the efficiency of the hash function by xoring the 16 bytes of uuid to a single long value and feeding it as salt to full_name_long_hash() instead of computing a hash on the uuid which is already random. Performance benchmarks/regression testing is high on my TODO list, but still did not get there. Thanks, Amir. [1] https://github.com/amir73il/linux/commits/ovl-nfs-export Amir Goldstein (4): ovl: disambiguate ovl_encode_fh() fs/namei.c: factor out helper full_name_long_hash() ovl: hash inodes by lower file handle for NFS export ovl: lookup in inode cache when decoding lower file handle fs/namei.c | 41 +++++++++++++++++------- fs/overlayfs/copy_up.c | 6 ++-- fs/overlayfs/export.c | 51 +++++++++++++---------------- fs/overlayfs/inode.c | 80 +++++++++++++++++++++++++++++++++++++++++++--- fs/overlayfs/namei.c | 12 +++---- fs/overlayfs/overlayfs.h | 13 ++++++-- fs/overlayfs/super.c | 2 ++ include/linux/hash.h | 10 +++++- include/linux/stringhash.h | 6 +++- 9 files changed, 163 insertions(+), 58 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html