summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/eas_acls.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/rdiff_backup/eas_acls.py')
-rw-r--r--rdiff-backup/rdiff_backup/eas_acls.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/rdiff-backup/rdiff_backup/eas_acls.py b/rdiff-backup/rdiff_backup/eas_acls.py
index abb8ece..aa87606 100644
--- a/rdiff-backup/rdiff_backup/eas_acls.py
+++ b/rdiff-backup/rdiff_backup/eas_acls.py
@@ -74,7 +74,16 @@ class ExtendedAttributes:
def clear_rp(self, rp):
"""Delete all the extended attributes in rpath"""
for name in rp.conn.xattr.listxattr(rp.path):
- rp.conn.xattr.removexattr(rp.path, name)
+ try:
+ rp.conn.xattr.removexattr(rp.path, name)
+ except IOError, exc:
+ # SELinux attributes cannot be removed, and we don't want
+ # to bail out or be too noisy at low log levels.
+ if exc[0] == errno.EACCES:
+ log.Log("Warning: unable to remove xattr %s from %s"
+ % (name, rp.path), 7)
+ continue
+ else: raise
def write_to_rp(self, rp):
"""Write extended attributes to rpath rp"""