瀏覽代碼

micro-opt: get xattrs directly before acls

on linux, acls are based on xattrs, so do these closeby:

1. listxattr -> keys (without acl related keys)
2. for all keys: getxattr
3. acl-related getxattr by acl library
Thomas Waldmann 6 年之前
父節點
當前提交
39922e88e5
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/borg/archive.py

+ 1 - 1
src/borg/archive.py

@@ -954,9 +954,9 @@ class MetadataCollector:
         attrs = {}
         bsdflags = 0
         with backup_io('extended stat'):
-            xattrs = xattr.get_all(fd or path, follow_symlinks=False)
             if not self.nobsdflags:
                 bsdflags = get_flags(path, st, fd=fd)
+            xattrs = xattr.get_all(fd or path, follow_symlinks=False)
             acl_get(path, attrs, st, self.numeric_owner, fd=fd)
         if xattrs:
             attrs['xattrs'] = StableDict(xattrs)