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

Reply via email to