d/graphdriver/copy: support src fs w/o xattr support
Treat copying extended attributes from a source filesystem which does not support extended attributes as a no-op, same as if the file did not possess the extended attribute. Only fail copying extended attributes if the source file has the attribute and the destination filesystem does not support xattrs. Signed-off-by: Cory Snider <csnider@mirantis.com>
This commit is contained in:
parent
7d7749ee47
commit
2b6761fd3e
1 changed files with 6 additions and 0 deletions
|
@ -5,6 +5,7 @@ package copy // import "github.com/docker/docker/daemon/graphdriver/copy"
|
|||
|
||||
import (
|
||||
"container/list"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
@ -90,6 +91,11 @@ func legacyCopy(srcFile io.Reader, dstFile io.Writer) error {
|
|||
func copyXattr(srcPath, dstPath, attr string) error {
|
||||
data, err := system.Lgetxattr(srcPath, attr)
|
||||
if err != nil {
|
||||
if errors.Is(err, syscall.EOPNOTSUPP) {
|
||||
// Task failed successfully: there is no xattr to copy
|
||||
// if the source filesystem doesn't support xattrs.
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
if data != nil {
|
||||
|
|
Loading…
Reference in a new issue