Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
continue calling waitpid() while still reapingchildren (patch from
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
816d69f
..
6361d21
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-417,8
+417,10
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL,
file->mode & INITACCESSPERMS);
fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL,
file->mode & INITACCESSPERMS);
- if (fd2 == -1 && errno == ENOENT &&
- (relative_paths || (compare_dest != NULL)) &&
+ /* in most cases parent directories will already exist
+ because their information should have been previously
+ transferred, but that may not be the case with -R */
+ if (fd2 == -1 && relative_paths && errno == ENOENT &&
create_directory_path(fnametmp) == 0) {
fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL,
file->mode & INITACCESSPERMS);
create_directory_path(fnametmp) == 0) {
fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL,
file->mode & INITACCESSPERMS);
@@
-475,7
+477,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
for (i = 0; i < flist->count; i++) {
file = flist->files[i];
if (!file->basename || !S_ISDIR(file->mode)) continue;
for (i = 0; i < flist->count; i++) {
file = flist->files[i];
if (!file->basename || !S_ISDIR(file->mode)) continue;
- recv_generator(f_name(file),flist,i,-1);
+ recv_generator(
local_name?local_name:
f_name(file),flist,i,-1);
}
if (verbose > 2)
}
if (verbose > 2)