Avoid ACL and/or xattr lookups on IS_MISSING_FILE() entries.
authorWayne Davison <wayned@samba.org>
Sun, 19 Jan 2014 20:24:01 +0000 (12:24 -0800)
committerWayne Davison <wayned@samba.org>
Sun, 19 Jan 2014 20:24:01 +0000 (12:24 -0800)
Fixes bug 10381.

acls.c
xattrs.c

diff --git a/acls.c b/acls.c
index 23bdf86a58c579675bcdddb0aeda144b474368a2..3f277b8e93802a2c8ad6ab8fc94a5bd3892785c2 100644 (file)
--- a/acls.c
+++ b/acls.c
@@ -560,7 +560,8 @@ int get_acl(const char *fname, stat_x *sxp)
                if (!preserve_devices)
 #endif
                        return 0;
-       }
+       } else if (IS_MISSING_FILE(sxp->st))
+               return 0;
 
        if (get_rsync_acl(fname, sxp->acc_acl, SMB_ACL_TYPE_ACCESS,
                          sxp->st.st_mode) < 0) {
index 01d30e4bfacc2e8236a3c24bba5f127ae137ee79..7e31422c3f2e366023cc6045a76704b353b17691 100644 (file)
--- a/xattrs.c
+++ b/xattrs.c
@@ -308,7 +308,8 @@ int get_xattr(const char *fname, stat_x *sxp)
                if (!preserve_devices)
 #endif
                        return 0;
-       }
+       } else if (IS_MISSING_FILE(sxp->st))
+               return 0;
 
        if (rsync_xal_get(fname, sxp->xattr) < 0) {
                free_xattr(sxp);