A cuple more fixes for --xattrs combined with --backup, this time to

handle when --link-dest is also used.
This commit is contained in:
Wayne Davison committed 2008-05-22 07:32:11 -07:00
1 parent 928da42359
commit 4337eeb754
2 files changed
+8 -3

No files matched your search

+6 -2
View File
@@ -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) {
+2 -1
View File
@@ -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. */