mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-24 22:58:16 -04:00
If we're making backups with --inplace, use the backup file as the
basis file while still updating the real destination file inplace.
This commit is contained in:
1 parent
8b115ac8dc
commit
dc55d7bdab
1 file changed
+7
-2
+7
-2
@@ -438,6 +438,11 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
|
||||
} else
|
||||
fnamecmp = partialptr = fname;
|
||||
|
||||
if (inplace && make_backups) {
|
||||
if (!(fnamecmp = get_backup_name(fname)))
|
||||
fnamecmp = partialptr;
|
||||
}
|
||||
|
||||
/* open the file */
|
||||
fd1 = do_open(fnamecmp, O_RDONLY, 0);
|
||||
|
||||
@@ -489,10 +494,10 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
|
||||
|
||||
/* We now check to see if we are writing file "inplace" */
|
||||
if (inplace) {
|
||||
fd2 = do_open(fnamecmp, O_WRONLY|O_CREAT, 0);
|
||||
fd2 = do_open(fname, O_WRONLY|O_CREAT, 0);
|
||||
if (fd2 == -1) {
|
||||
rsyserr(FERROR, errno, "open %s failed",
|
||||
full_fname(fnamecmp));
|
||||
full_fname(fname));
|
||||
discard_receive_data(f_in, file->length);
|
||||
if (fd1 != -1)
|
||||
close(fd1);
|
||||
|
||||
Reference in new issue
Block a user