• Miklos Szeredi's avatar
    ovl: don't cache acl on overlay layer · 2a3a2a3f
    Miklos Szeredi authored
    Some operations (setxattr/chmod) can make the cached acl stale.  We either
    need to clear overlay's acl cache for the affected inode or prevent acl
    caching on the overlay altogether.  Preventing caching has the following
    advantages:
    
     - no double caching, less memory used
    
     - overlay cache doesn't go stale when fs clears it's own cache
    
    Possible disadvantage is performance loss.  If that becomes a problem
    get_acl() can be optimized for overlayfs.
    
    This patch disables caching by pre setting i_*acl to a value that
    
      - has bit 0 set, so is_uncached_acl() will return true
    
      - is not equal to ACL_NOT_CACHED, so get_acl() will not overwrite it
    
    The constant -3 was chosen for this purpose.
    
    Fixes: 39a25b2b ("ovl: define ->get_acl() for overlay inodes")
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    2a3a2a3f
inode.c 10.5 KB