• Miklos Szeredi's avatar
    ovl: handle umask and posix_acl_default correctly on creation · 38b25697
    Miklos Szeredi authored
    Setting MS_POSIXACL in sb->s_flags has the side effect of passing mode to
    create functions without masking against umask.
    
    Another problem when creating over a whiteout is that the default posix acl
    is not inherited from the parent dir (because the real parent dir at the
    time of creation is the work directory).
    
    Fix these problems by:
    
     a) If upper fs does not have MS_POSIXACL, then mask mode with umask.
    
     b) If creating over a whiteout, call posix_acl_create() to get the
     inherited acls.  After creation (but before moving to the final
     destination) set these acls on the created file.  posix_acl_create() also
     updates the file creation mode as appropriate.
    
    Fixes: 39a25b2b ("ovl: define ->get_acl() for overlay inodes")
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    38b25697
dir.c 22.4 KB