You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: errors.go
    path of file: ./repos/podman/vendor/github.com/hugelgupf/p9/linux
    
    the code of the file until where you have to start completion: package linux

import (
	"errors"
	"os"
)

// ExtractErrno extracts an [Errno] from an error, best effort.
//
// If the system-specific or Go-specific error cannot be mapped to anything, it
// will be logged and EIO will be returned.
func ExtractErrno(err error) E
    
func ExtractErrno(err error) Errno {
	for _, pair := range []struct {
		error
		Errno
	}{
		{os.ErrNotExist, ENOENT},
		{os.ErrExist, EEXIST},
		{os.ErrPermission, EACCES},
		{os.ErrInvalid, EINVAL},
	} {
		if errors.Is(err, pair.error) {
			return pair.Errno
		}
	}

	var errno Errno
	if errors.As(err, &errno) {
		return errno
	}

	if e := sysErrno(err); e != 0 {
		return e
	}

	// Default case.
	return EIO
}