From cdf703fa811ec4f9f243f6c74850f75fc853339c Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Fri, 7 Jun 2024 11:13:33 +0200 Subject: [PATCH] chunked: return PathError for fsetxattr Signed-off-by: Giuseppe Scrivano --- pkg/chunked/filesystem_linux.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/chunked/filesystem_linux.go b/pkg/chunked/filesystem_linux.go index 836b15d18..7f135886c 100644 --- a/pkg/chunked/filesystem_linux.go +++ b/pkg/chunked/filesystem_linux.go @@ -197,7 +197,11 @@ func setFileAttrs(dirfd int, file *os.File, mode os.FileMode, metadata *fileMeta } doSetXattr := func(k string, v []byte) error { - return unix.Fsetxattr(fd, k, v, 0) + err := unix.Fsetxattr(fd, k, v, 0) + if err != nil { + return &fs.PathError{Op: "fsetxattr", Path: metadata.Name, Err: err} + } + return nil } doUtimes := func() error { @@ -519,7 +523,7 @@ func (d whiteoutHandler) Setxattr(path, name string, value []byte) error { defer file.Close() if err := unix.Fsetxattr(int(file.Fd()), name, value, 0); err != nil { - return fmt.Errorf("set xattr %s=%q for %q: %w", name, value, path, err) + return &fs.PathError{Op: "fsetxattr", Path: path, Err: err} } return nil }