summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/copy.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/copy.c b/src/copy.c
index e06acc14a..9d8c0c070 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -429,9 +429,11 @@ copy_internal (const char *src_path, const char *dst_path,
&& ! x->force
/* Allow them to be the same (and don't set `same') if
- we're in move mode and the target is a symlink. */
+ we're in move mode and the target is a symlink
+ on the same partition. */
&& !(move_mode
- && S_ISLNK (dst_sb.st_mode))
+ && S_ISLNK (dst_sb.st_mode)
+ && src_sb.st_dev == dst_sb.st_dev)
/* If we're making a backup, we'll detect the problem case in
copy_reg because SRC_PATH will no longer exist. Allowing