if ((am_root && preserve_devices && IS_DEVICE(file->mode))
--- old/compat.c
+++ new/compat.c
-@@ -50,6 +50,8 @@ void setup_protocol(int f_out,int f_in)
- preserve_gid = ++flist_extra_cnt;
+@@ -52,6 +52,8 @@ void setup_protocol(int f_out,int f_in)
+ preserve_gid = ++file_extra_cnt;
if (preserve_acls && !am_sender)
- preserve_acls = ++flist_extra_cnt;
+ preserve_acls = ++file_extra_cnt;
+ if (preserve_xattrs && !am_sender)
-+ preserve_xattrs = ++flist_extra_cnt;
++ preserve_xattrs = ++file_extra_cnt;
if (remote_protocol == 0) {
if (!read_batch)
--- old/configure.in
+++ new/configure.in
-@@ -878,6 +878,40 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
+@@ -883,6 +883,40 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
AC_MSG_RESULT(no)
)
return file;
}
@@ -1082,7 +1087,7 @@ static struct file_struct *send_file_nam
- unsigned short flags)
+ int flags)
{
struct file_struct *file;
-#ifdef SUPPORT_ACLS
* will enable owner-writability using chmod, if necessary.
--- old/rsync.h
+++ new/rsync.h
-@@ -511,6 +511,10 @@ struct idev_node {
+@@ -540,6 +540,10 @@ struct idev_node {
#define ACLS_NEED_MASK 1
#endif
#define GID_NONE ((gid_t)-1)
union file_extras {
-@@ -531,6 +535,7 @@ extern int flist_extra_cnt;
+@@ -560,6 +564,7 @@ extern int file_extra_cnt;
extern int preserve_uid;
extern int preserve_gid;
extern int preserve_acls;
#define FILE_STRUCT_LEN (offsetof(struct file_struct, basename))
#define EXTRA_LEN (sizeof (union file_extras))
-@@ -564,6 +569,7 @@ extern int preserve_acls;
+@@ -593,6 +598,7 @@ extern int preserve_acls;
#define F_UID(f) REQ_EXTRA(f, preserve_uid)->unum
#define F_GID(f) REQ_EXTRA(f, preserve_gid)->unum
#define F_ACL(f) REQ_EXTRA(f, preserve_acls)->unum
/* These items are per-entry optional and mutally exclusive: */
#define F_HL_GNUM(f) OPT_EXTRA(f, LEN64_BUMP(f))->num
-@@ -739,6 +745,9 @@ typedef struct {
+@@ -768,6 +774,9 @@ typedef struct {
struct rsync_acl *acc_acl; /* access ACL */
struct rsync_acl *def_acl; /* default ACL */
#endif