pkg: archive: only ignore ENOTSUP when xattr fails
There might be other (valid) reasons for setxattr(2) to fail, so only ignore it when it's a not supported error (ENOTSUP). Otherwise, bail. Signed-off-by: Aleksa Sarai <asarai@suse.de>
This commit is contained in:
parent
9b79cbe713
commit
e24aa430f9
1 changed files with 9 additions and 2 deletions
|
@ -428,8 +428,15 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, L
|
||||||
var errors []string
|
var errors []string
|
||||||
for key, value := range hdr.Xattrs {
|
for key, value := range hdr.Xattrs {
|
||||||
if err := system.Lsetxattr(path, key, []byte(value), 0); err != nil {
|
if err := system.Lsetxattr(path, key, []byte(value), 0); err != nil {
|
||||||
// We ignore errors here because not all graphdrivers support xattrs.
|
if err == syscall.ENOTSUP {
|
||||||
|
// We ignore errors here because not all graphdrivers support
|
||||||
|
// xattrs *cough* old versions of AUFS *cough*. However only
|
||||||
|
// ENOTSUP should be emitted in that case, otherwise we still
|
||||||
|
// bail.
|
||||||
errors = append(errors, err.Error())
|
errors = append(errors, err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue