syscall: handle errors.ErrUnsupported in isNotSupported

Updates #41198

Change-Id: Ifed913f6088b77abc7a21d2a79168a20799f9d0e
Reviewed-on: https://go-review.googlesource.com/c/go/+/475857
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
This commit is contained in:
Tobias Klauser 2023-03-15 15:15:04 +01:00 committed by Gopher Robot
parent bbf795ebb1
commit 778f271057

View file

@ -39,6 +39,8 @@ func isNotSupported(err error) bool {
switch errno {
case syscall.ENOSYS, syscall.ENOTSUP:
// Explicitly not supported.
// TODO(#41198): remove these cases when errors.Is reports that they are
// equivalent to ErrUnsupported.
return true
case syscall.EPERM, syscall.EROFS:
// User lacks permission: either the call requires root permission and the
@ -51,12 +53,10 @@ func isNotSupported(err error) bool {
}
}
if errors.Is(err, fs.ErrPermission) {
if errors.Is(err, fs.ErrPermission) || errors.Is(err, errors.ErrUnsupported) {
return true
}
// TODO(#41198): Also return true if errors.Is(err, errors.ErrUnsupported).
return false
}