- dest_mode = flist_mode & ACCESSPERMS & ~orig_umask;
- return (flist_mode & ~CHMOD_BITS) | (dest_mode & CHMOD_BITS);
+ cur_mode = flist_mode & ACCESSPERMS & ~orig_umask;
+ if (daemon_chmod_modes && !S_ISLNK(flist_mode))
+ cur_mode = tweak_mode(cur_mode, daemon_chmod_modes);
+ return (flist_mode & ~CHMOD_BITS) | (cur_mode & CHMOD_BITS);