123456789101112131415161718192021222324252627282930 |
- //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
- }
|