mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-21 05:14:15 -04:00
A cuple more fixes for --xattrs combined with --backup, this time to
handle when --link-dest is also used.
This commit is contained in:
1 parent
928da42359
commit
4337eeb754
2 files changed
+8
-3
No files matched your search
+6
-2
@@ -922,6 +922,7 @@ static int copy_altdest_file(const char *src, const char *dest, struct file_stru
|
||||
{
|
||||
char buf[MAXPATHLEN];
|
||||
const char *copy_to, *partialptr;
|
||||
int save_preserve_xattrs = preserve_xattrs;
|
||||
int ok, fd_w;
|
||||
|
||||
if (inplace) {
|
||||
@@ -946,7 +947,9 @@ static int copy_altdest_file(const char *src, const char *dest, struct file_stru
|
||||
return -1;
|
||||
}
|
||||
partialptr = partial_dir ? partial_dir_fname(dest) : NULL;
|
||||
preserve_xattrs = 0; /* xattrs were copied with file */
|
||||
ok = finish_transfer(dest, copy_to, src, partialptr, file, 1, 0);
|
||||
preserve_xattrs = save_preserve_xattrs;
|
||||
cleanup_disable();
|
||||
return ok ? 0 : -1;
|
||||
}
|
||||
@@ -1948,10 +1951,11 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
|
||||
if (f_copy >= 0)
|
||||
close(f_copy);
|
||||
#ifdef SUPPORT_XATTRS
|
||||
if (preserve_xattrs)
|
||||
if (preserve_xattrs) {
|
||||
copy_xattrs(fname, backupptr);
|
||||
preserve_xattrs = 0;
|
||||
}
|
||||
#endif
|
||||
preserve_xattrs = 0;
|
||||
set_file_attrs(backupptr, back_file, NULL, NULL, 0);
|
||||
preserve_xattrs = save_preserve_xattrs;
|
||||
if (verbose > 1) {
|
||||
|
||||
@@ -564,7 +564,8 @@ int finish_transfer(const char *fname, const char *fnametmp,
|
||||
if (make_backups > 0 && overwriting_basis) {
|
||||
if (!make_backup(fname))
|
||||
return 1;
|
||||
fnamecmp = get_backup_name(fname);
|
||||
if (fnamecmp == fname)
|
||||
fnamecmp = get_backup_name(fname);
|
||||
}
|
||||
|
||||
/* Change permissions before putting the file into place. */
|
||||
|
||||
Reference in new issue
Block a user