//go:build linux package overlay2 // import "github.com/docker/docker/daemon/graphdriver/overlay2" import ( "runtime" "golang.org/x/sys/unix" ) func mountFrom(dir, device, target, mType string, flags uintptr, label string) error { chErr := make(chan error, 1) go func() { runtime.LockOSThread() // Do not unlock this thread as the thread state cannot be restored // We do not want go to re-use this thread for anything else. if err := unix.Unshare(unix.CLONE_FS); err != nil { chErr <- err return } if err := unix.Chdir(dir); err != nil { chErr <- err return } chErr <- unix.Mount(device, target, mType, flags, label) }() return <-chErr }