diff --git a/graphdriver/devmapper/deviceset.go b/graphdriver/devmapper/deviceset.go index e24840634d..66e44e3da0 100644 --- a/graphdriver/devmapper/deviceset.go +++ b/graphdriver/devmapper/deviceset.go @@ -344,7 +344,7 @@ func setCloseOnExec(name string) { if link == name { fd, err := strconv.Atoi(i.Name()) if err == nil { - syscall.CloseOnExec(fd) + SyscallCloseOnExec(fd) } } } @@ -716,7 +716,7 @@ func (devices *DeviceSet) Shutdown() error { for path, count := range devices.activeMounts { for i := count; i > 0; i-- { - if err := syscall.Unmount(path, 0); err != nil { + if err := SyscallUnmount(path, 0); err != nil { utils.Debugf("Shutdown unmounting %s, error: %s\n", path, err) } } @@ -758,9 +758,9 @@ func (devices *DeviceSet) MountDevice(hash, path string, readOnly bool) error { flags = flags | syscall.MS_RDONLY } - err := syscall.Mount(info.DevName(), path, "ext4", flags, "discard") + err := SyscallMount(info.DevName(), path, "ext4", flags, "discard") if err != nil && err == syscall.EINVAL { - err = syscall.Mount(info.DevName(), path, "ext4", flags, "") + err = SyscallMount(info.DevName(), path, "ext4", flags, "") } if err != nil { return fmt.Errorf("Error mounting '%s' on '%s': %s", info.DevName(), path, err) @@ -779,7 +779,7 @@ func (devices *DeviceSet) UnmountDevice(hash, path string, deactivate bool) erro defer devices.Unlock() utils.Debugf("[devmapper] Unmount(%s)", path) - if err := syscall.Unmount(path, 0); err != nil { + if err := SyscallUnmount(path, 0); err != nil { utils.Debugf("\n--->Err: %s\n", err) return err } diff --git a/graphdriver/devmapper/devmapper.go b/graphdriver/devmapper/devmapper.go index 6901ba9a6e..56130bd01c 100644 --- a/graphdriver/devmapper/devmapper.go +++ b/graphdriver/devmapper/devmapper.go @@ -216,7 +216,7 @@ func FindLoopDeviceFor(file *os.File) *os.File { for i := 0; true; i++ { path := fmt.Sprintf("/dev/loop%d", i) - file, err := os.OpenFile(path, os.O_RDWR, 0) + file, err := OSOpenFile(path, os.O_RDWR, 0) if err != nil { if os.IsNotExist(err) { return nil diff --git a/graphdriver/devmapper/devmapper_wrapper.go b/graphdriver/devmapper/devmapper_wrapper.go index f9a7d039cf..e261db4351 100644 --- a/graphdriver/devmapper/devmapper_wrapper.go +++ b/graphdriver/devmapper/devmapper_wrapper.go @@ -241,19 +241,19 @@ func dmTaskAddTargetFct(task *CDmTask, func dmGetLoopbackBackingFile(fd uintptr) (uint64, uint64, syscall.Errno) { var lo64 C.struct_loop_info64 - _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.LOOP_GET_STATUS64, + _, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.LOOP_GET_STATUS64, uintptr(unsafe.Pointer(&lo64))) return uint64(lo64.lo_device), uint64(lo64.lo_inode), err } func dmLoopbackSetCapacity(fd uintptr) syscall.Errno { - _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.LOOP_SET_CAPACITY, 0) + _, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.LOOP_SET_CAPACITY, 0) return err } func dmGetBlockSizeFct(fd uintptr) (int64, syscall.Errno) { var size int64 - _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64, + _, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64, uintptr(unsafe.Pointer(&size))) return size, err } @@ -308,7 +308,7 @@ func dmAttachLoopDeviceFct(filename string, fd *int) string { } func getBlockSizeFct(fd uintptr, size *uint64) syscall.Errno { - _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64, + _, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64, uintptr(unsafe.Pointer(&size))) return err } diff --git a/graphdriver/devmapper/sys.go b/graphdriver/devmapper/sys.go new file mode 100644 index 0000000000..c2ba1263f0 --- /dev/null +++ b/graphdriver/devmapper/sys.go @@ -0,0 +1,15 @@ +package devmapper + + +import ( + "syscall" +) + + +var ( + SyscallMount = syscall.Mount + SyscallUnmount = syscall.Unmount + SyscallCloseOnExec = syscall.CloseOnExec + SyscallSyscall = syscall.Syscall + OSOpenFile = os.OpenFile +)