Otherwise, `mv' would not preserve the permissions when copying
between partitions. Reported by David Godfrey
else if ((x->preserve_chmod_bits || new_dst)
&& (x->copy_as_regular || S_ISREG (src_type) || S_ISDIR (src_type)))
{
- if (chmod (dst_path, src_mode & x->umask_kill))
+ mode_t dst_mode = src_mode;
+
+ /* Honor the umask for `cp', but not for `mv'. */
+ if (!x->move_mode)
+ dst_mode &= x->umask_kill;
+
+ if (chmod (dst_path, dst_mode))
{
error (0, errno, _("preserving permissions for %s"), dst_path);
if (x->require_preserve)