• M
    ovl: enable RCU'd ->get_acl() · 332f606b
    Miklos Szeredi 提交于
    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: Ngaryhuang <zjh.20052005@163.com>
    Signed-off-by: NMiklos Szeredi <mszeredi@redhat.com>
    332f606b
fs.h 120.1 KB