• Miklos Szeredi's avatar
    ovl: enable RCU'd ->get_acl() · 332f606b
    Miklos Szeredi authored
    Overlayfs does not cache ACL's (to avoid double caching).  Instead it just
    calls the underlying filesystem's i_op->get_acl(), which will return the
    cached value, if possible.
    
    In rcu path walk, however, get_cached_acl_rcu() is employed to get the
    value from the cache, which will fail on overlayfs resulting in dropping
    out of rcu walk mode.  This can result in a big performance hit in certain
    situations.
    
    Fix by calling ->get_acl() with rcu=true in case of ACL_DONT_CACHE (which
    indicates pass-through)
    Reported-by: default avatargaryhuang <zjh.20052005@163.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    332f606b
posix_acl.c 23.6 KB