• ASANO Masahiro's avatar
    VFS: add lookup hint for network file systems · a634904a
    ASANO Masahiro authored
    I'm trying to speeding up mkdir(2) for network file systems.  A typical
    mkdir(2) calls two inode_operations: lookup and mkdir.  The lookup
    operation would fail with ENOENT in common case.  I think it is unnecessary
    because the subsequent mkdir operation can check it.  In case of creat(2),
    lookup operation is called with the LOOKUP_CREATE flag, so individual
    filesystem can omit real lookup.  e.g.  nfs_lookup().
    
    Here is a sample patch which uses LOOKUP_CREATE and O_EXCL on mkdir,
    symlink and mknod.  This uses the gadget for creat(2).
    
    And here is the result of a benchmark on NFSv3.
      mkdir(2) 10,000 times:
        original  50.5 sec
        patched   29.0 sec
    Signed-off-by: default avatarASANO Masahiro <masano@tnes.nec.co.jp>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    (cherry picked from fab7bf44449b29f9d5572a5dd8adcf7c91d5bf0f commit)
    a634904a
namei.c 67 KB