diff --git a/src/borg/archive.py b/src/borg/archive.py index f10395d59..3e844f016 100644 --- a/src/borg/archive.py +++ b/src/borg/archive.py @@ -657,13 +657,12 @@ Number of files: {0.stats.nfiles}'''.format( attrs['user'] = attrs['group'] = None with backup_io(): xattrs = xattr.get_all(path, follow_symlinks=False) + bsdflags = get_flags(path, st) + acl_get(path, attrs, st, self.numeric_owner) if xattrs: attrs['xattrs'] = StableDict(xattrs) - bsdflags = get_flags(path, st) if bsdflags: attrs['bsdflags'] = bsdflags - with backup_io(): - acl_get(path, attrs, st, self.numeric_owner) return attrs def process_dir(self, path, st): diff --git a/src/borg/archiver.py b/src/borg/archiver.py index a01409805..d010022a1 100644 --- a/src/borg/archiver.py +++ b/src/borg/archiver.py @@ -324,8 +324,12 @@ class Archiver: return status = None # Ignore if nodump flag is set - if get_flags(path, st) & stat.UF_NODUMP: - self.print_file_status('x', path) + try: + if get_flags(path, st) & stat.UF_NODUMP: + self.print_file_status('x', path) + return + except OSError as e: + self.print_warning('%s: %s', path, e) return if stat.S_ISREG(st.st_mode): if not dry_run: