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: xattrs_linux.go
    path of file: ./repos/docker-ce/components/engine/vendor/github.com/opencontainers/selinux/go-selinux
    
    the code of the file until where you have to start completion: package selinux

import (
	"golang.org/x/sys/unix"
)

// lgetxattr returns a []byte slice containing the value of
// an extended attribute attr set for path.
func lgetxattr(path, attr string) ([]byte, error) {
	// Start with a 128 length byte array
	dest := make([]byte, 128)
	sz, errno := doLgetxattr(path, attr, dest)
	for errno == unix.ERANGE { //nolint:errorlint // unix errors are bare
		// Buffer too small, use zero-sized buffer to get the actual size
		sz, err
    
func lgetxattr(path, attr string) ([]byte, error) {
	// Start with a 128 length byte array
	dest := make([]byte, 128)
	sz, errno := doLgetxattr(path, attr, dest)
	for errno == unix.ERANGE { //nolint:errorlint // unix errors are bare
		// Buffer too small, use zero-sized buffer to get the actual size
		sz, errno = doLgetxattr(path, attr, []byte{})
		if errno != nil {
			return nil, errno
		}

		dest = make([]byte, sz)
		sz, errno = doLgetxattr(path, attr, dest)
	}
	if errno != nil {
		return nil, errno
	}

	return dest[:sz], nil
}