1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-01-01 04:37:34 +00:00

Merge pull request #3273 from ThomasWaldmann/set-bsdflags-last-1.1

set bsdflags last (include immutable flag), fixes #3263
This commit is contained in:
TW 2017-11-04 21:40:42 +01:00 committed by GitHub
commit 5680de537c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -692,11 +692,6 @@ def restore_attrs(self, path, item, symlink=False, fd=None):
# some systems don't support calling utime on a symlink
pass
acl_set(path, item, self.numeric_owner)
if not self.nobsdflags and 'bsdflags' in item:
try:
set_flags(path, item.bsdflags, fd=fd)
except OSError:
pass
# chown removes Linux capabilities, so set the extended attributes at the end, after chown, since they include
# the Linux capabilities in the "security.capability" attribute.
xattrs = item.get('xattrs', {})
@ -719,6 +714,12 @@ def restore_attrs(self, path, item, symlink=False, fd=None):
set_ec(EXIT_WARNING)
else:
raise
# bsdflags include the immutable flag and need to be set last:
if not self.nobsdflags and 'bsdflags' in item:
try:
set_flags(path, item.bsdflags, fd=fd)
except OSError:
pass
def set_meta(self, key, value):
metadata = self._load_meta(self.id)