The branch, b3.0.x has been updated via b178eb0 Allow a failure of EINVAL to mean no ACLs are available. (If our POSIX types aren't valid, we can't handle the ACLs.) via 3158b8d Fix --force with --one-file-system w/o --delete. from aa3640c Fix issue with devices-fake test.
;a=shortlog;h=b3.0.x - Log ----------------------------------------------------------------- commit b178eb04d3406af1ec90641e1090caa7bbe831db Author: Wayne Davison <way...@samba.org> Date: Tue Feb 22 08:49:21 2011 -0800 Allow a failure of EINVAL to mean no ACLs are available. (If our POSIX types aren't valid, we can't handle the ACLs.) commit 3158b8df6c193c1e304f3244b46b93752445744b Author: Wayne Davison <way...@samba.org> Date: Tue Feb 22 08:19:50 2011 -0800 Fix --force with --one-file-system w/o --delete. ----------------------------------------------------------------------- Summary of changes: acls.c | 3 +++ lib/sysacls.c | 5 +++++ main.c | 2 ++ 3 files changed, 10 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/acls.c b/acls.c index 87b6c80..9fac3cd 100644 --- a/acls.c +++ b/acls.c @@ -1101,6 +1101,9 @@ int default_perms_for_dir(const char *dir) if (sacl == NULL) { /* Couldn't get an ACL. Darn. */ switch (errno) { + case EINVAL: + /* If SMB_ACL_TYPE_DEFAULT isn't valid, then the ACLs must be non-POSIX. */ + break; #ifdef ENOTSUP case ENOTSUP: #endif diff --git a/lib/sysacls.c b/lib/sysacls.c index 19d4d7a..52314bc 100644 --- a/lib/sysacls.c +++ b/lib/sysacls.c @@ -2781,6 +2781,11 @@ int no_acl_syscall_error(int err) return 1; } #endif + if (err == EINVAL) { + /* If the type of SMB_ACL_TYPE_ACCESS or SMB_ACL_TYPE_DEFAULT + * isn't valid, then the ACLs must be non-POSIX. */ + return 1; + } return 0; } diff --git a/main.c b/main.c index 85e38f3..b6cc6bd 100644 --- a/main.c +++ b/main.c @@ -64,6 +64,7 @@ extern int write_batch; extern int batch_fd; extern int filesfrom_fd; extern int connect_timeout; +extern dev_t filesystem_dev; extern pid_t cleanup_child_pid; extern unsigned int module_dirlen; extern struct stats stats; @@ -542,6 +543,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path) full_fname(dest_path)); exit_cleanup(RERR_FILESELECT); } + filesystem_dev = st.st_dev; /* ensures --force works right w/-x */ return NULL; } if (file_total > 1) { -- The rsync repository. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs