- if (robust_rename(fnametmp,fname) != 0) {
- if (errno == EXDEV) {
- /* rename failed on cross-filesystem link.
- Copy the file instead. */
- if (copy_file(fnametmp,fname, file->mode & INITACCESSPERMS)) {
- rprintf(FERROR, "copy %s -> \"%s\": %s\n",
- full_fname(fnametmp), fname,
- strerror(errno));
- } else {
- set_perms(fname,file,NULL,0);
- }
- } else {
- rprintf(FERROR,"rename %s -> \"%s\": %s\n",
- full_fname(fnametmp), fname, strerror(errno));
- }
+ ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS);
+ if (ret < 0) {
+ rprintf(FERROR, "%s %s -> \"%s\": %s\n",
+ ret == -2 ? "copy" : "rename",
+ full_fname(fnametmp), fname, strerror(errno));