• Amir Goldstein's avatar
    ovl: copy up sync/noatime fileattr flags · 72db8211
    Amir Goldstein authored
    When a lower file has sync/noatime fileattr flags, the behavior of
    overlayfs post copy up is inconsistent.
    
    Immediately after copy up, ovl inode still has the S_SYNC/S_NOATIME
    inode flags copied from lower inode, so vfs code still treats the ovl
    inode as sync/noatime.  After ovl inode evict or mount cycle,
    the ovl inode does not have these inode flags anymore.
    
    To fix this inconsistency, try to copy the fileattr flags on copy up
    if the upper fs supports the fileattr_set() method.
    
    This gives consistent behavior post copy up regardless of inode eviction
    from cache.
    
    We cannot copy up the immutable/append-only inode flags in a similar
    manner, because immutable/append-only inodes cannot be linked and because
    overlayfs will not be able to set overlay.* xattr on the upper inodes.
    
    Those flags will be addressed by a followup patch.
    Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    72db8211
inode.c 30.3 KB