From 97dde6b6200aa0a3333e4f821e24dd5f0f91ec75 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 14 Jul 2008 23:48:33 -0700 Subject: [PATCH] A couple xattr fixes for --fake-super. --- xattrs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/xattrs.c b/xattrs.c index ee21c8d8..85341b37 100644 --- a/xattrs.c +++ b/xattrs.c @@ -294,7 +294,7 @@ int copy_xattrs(const char *source, const char *dest) size_t datum_len; char *name, *ptr; #ifdef HAVE_LINUX_XATTRS - int user_only = am_sender ? 0 : !am_root; + int user_only = am_sender ? 0 : am_root <= 0; #endif /* This puts the name list into the "namebuf" buffer. */ @@ -745,6 +745,9 @@ static int rsync_xal_set(const char *fname, item_list *xalp, ssize_t list_len; size_t i, len; char *name, *ptr, sum[MAX_DIGEST_LEN]; +#ifdef HAVE_LINUX_XATTRS + int user_only = am_root <= 0; +#endif size_t name_len; int ret = 0; @@ -820,8 +823,8 @@ static int rsync_xal_set(const char *fname, item_list *xalp, #ifdef HAVE_LINUX_XATTRS /* We always ignore the system namespace, and non-root * ignores everything but the user namespace. */ - if (am_root ? HAS_PREFIX(name, SYSTEM_PREFIX) - : !HAS_PREFIX(name, USER_PREFIX)) + if (user_only ? !HAS_PREFIX(name, USER_PREFIX) + : HAS_PREFIX(name, SYSTEM_PREFIX)) continue; #endif if (am_root < 0 && name_len > RPRE_LEN -- 2.34.1