Set the xattrs prior to setting the ACLs.
authorWayne Davison <wayned@samba.org>
Fri, 27 Oct 2006 06:28:19 +0000 (06:28 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 27 Oct 2006 06:28:19 +0000 (06:28 +0000)
xattrs.diff

index 7869106..eb9c105 100644 (file)
@@ -484,17 +484,17 @@ TODO:
  extern int preserve_perms;
  extern int preserve_executability;
  extern int preserve_times;
-@@ -229,6 +230,10 @@ int set_file_attrs(char *fname, struct f
-       if (preserve_acls && set_acl(fname, file, sxp) == 0)
-               updated = 1;
- #endif
+@@ -219,6 +220,10 @@ int set_file_attrs(char *fname, struct f
+       if (daemon_chmod_modes && !S_ISLNK(new_mode))
+               new_mode = tweak_mode(new_mode, daemon_chmod_modes);
 +#ifdef SUPPORT_XATTRS
 +      if (preserve_xattrs && set_xattr(fname, file, sxp) == 0)
 +              updated = 1;
 +#endif
- #ifdef HAVE_CHMOD
-       if ((sxp->st.st_mode & CHMOD_BITS) != (new_mode & CHMOD_BITS)) {
+ #ifdef SUPPORT_ACLS
+       /* It's OK to call set_acl() now, even for a dir, as the generator
+        * will enable owner-writability using chmod, if necessary.
 --- old/rsync.h
 +++ new/rsync.h
 @@ -501,6 +501,10 @@ struct idev {