Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
| ... | ... |
@@ -1,4 +1,4 @@ |
| 1 |
-// +build linux,cgo |
|
| 1 |
+// +build linux |
|
| 2 | 2 |
|
| 3 | 3 |
package loopback // import "github.com/docker/docker/pkg/loopback" |
| 4 | 4 |
|
| ... | ... |
@@ -116,10 +116,10 @@ func AttachLoopDevice(sparseName string) (loop *os.File, err error) {
|
| 116 | 116 |
} |
| 117 | 117 |
|
| 118 | 118 |
// Set the status of the loopback device |
| 119 |
- loopInfo := &loopInfo64{
|
|
| 120 |
- loFileName: stringToLoopName(loopFile.Name()), |
|
| 121 |
- loOffset: 0, |
|
| 122 |
- loFlags: LoFlagsAutoClear, |
|
| 119 |
+ loopInfo := &unix.LoopInfo64{
|
|
| 120 |
+ File_name: stringToLoopName(loopFile.Name()), |
|
| 121 |
+ Offset: 0, |
|
| 122 |
+ Flags: LoFlagsAutoClear, |
|
| 123 | 123 |
} |
| 124 | 124 |
|
| 125 | 125 |
if err := ioctlLoopSetStatus64(loopFile.Fd(), loopInfo); err != nil {
|
| ... | ... |
@@ -1,4 +1,4 @@ |
| 1 |
-// +build linux,cgo |
|
| 1 |
+// +build linux |
|
| 2 | 2 |
|
| 3 | 3 |
package loopback // import "github.com/docker/docker/pkg/loopback" |
| 4 | 4 |
|
| ... | ... |
@@ -17,32 +17,32 @@ func ioctlLoopCtlGetFree(fd uintptr) (int, error) {
|
| 17 | 17 |
} |
| 18 | 18 |
|
| 19 | 19 |
func ioctlLoopSetFd(loopFd, sparseFd uintptr) error {
|
| 20 |
- return unix.IoctlSetInt(int(loopFd), LoopSetFd, int(sparseFd)) |
|
| 20 |
+ return unix.IoctlSetInt(int(loopFd), unix.LOOP_SET_FD, int(sparseFd)) |
|
| 21 | 21 |
} |
| 22 | 22 |
|
| 23 |
-func ioctlLoopSetStatus64(loopFd uintptr, loopInfo *loopInfo64) error {
|
|
| 24 |
- if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, LoopSetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
|
|
| 23 |
+func ioctlLoopSetStatus64(loopFd uintptr, loopInfo *unix.LoopInfo64) error {
|
|
| 24 |
+ if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, unix.LOOP_SET_STATUS64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
|
|
| 25 | 25 |
return err |
| 26 | 26 |
} |
| 27 | 27 |
return nil |
| 28 | 28 |
} |
| 29 | 29 |
|
| 30 | 30 |
func ioctlLoopClrFd(loopFd uintptr) error {
|
| 31 |
- if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, LoopClrFd, 0); err != 0 {
|
|
| 31 |
+ if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, unix.LOOP_CLR_FD, 0); err != 0 {
|
|
| 32 | 32 |
return err |
| 33 | 33 |
} |
| 34 | 34 |
return nil |
| 35 | 35 |
} |
| 36 | 36 |
|
| 37 |
-func ioctlLoopGetStatus64(loopFd uintptr) (*loopInfo64, error) {
|
|
| 38 |
- loopInfo := &loopInfo64{}
|
|
| 37 |
+func ioctlLoopGetStatus64(loopFd uintptr) (*unix.LoopInfo64, error) {
|
|
| 38 |
+ loopInfo := &unix.LoopInfo64{}
|
|
| 39 | 39 |
|
| 40 |
- if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, LoopGetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
|
|
| 40 |
+ if _, _, err := unix.Syscall(unix.SYS_IOCTL, loopFd, unix.LOOP_GET_STATUS64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
|
|
| 41 | 41 |
return nil, err |
| 42 | 42 |
} |
| 43 | 43 |
return loopInfo, nil |
| 44 | 44 |
} |
| 45 | 45 |
|
| 46 | 46 |
func ioctlLoopSetCapacity(loopFd uintptr, value int) error {
|
| 47 |
- return unix.IoctlSetInt(int(loopFd), LoopSetCapacity, value) |
|
| 47 |
+ return unix.IoctlSetInt(int(loopFd), unix.LOOP_SET_CAPACITY, value) |
|
| 48 | 48 |
} |
| ... | ... |
@@ -1,52 +1,24 @@ |
| 1 |
-// +build linux,cgo |
|
| 1 |
+// +build linux |
|
| 2 | 2 |
|
| 3 | 3 |
package loopback // import "github.com/docker/docker/pkg/loopback" |
| 4 | 4 |
|
| 5 |
-/* |
|
| 6 |
-#include <linux/loop.h> // FIXME: present only for defines, maybe we can remove it? |
|
| 7 |
- |
|
| 8 |
-#ifndef LOOP_CTL_GET_FREE |
|
| 9 |
- #define LOOP_CTL_GET_FREE 0x4C82 |
|
| 10 |
-#endif |
|
| 11 |
- |
|
| 12 |
-#ifndef LO_FLAGS_PARTSCAN |
|
| 13 |
- #define LO_FLAGS_PARTSCAN 8 |
|
| 14 |
-#endif |
|
| 15 |
- |
|
| 16 |
-*/ |
|
| 17 |
-import "C" |
|
| 18 |
- |
|
| 19 |
-type loopInfo64 struct {
|
|
| 20 |
- loDevice uint64 /* ioctl r/o */ |
|
| 21 |
- loInode uint64 /* ioctl r/o */ |
|
| 22 |
- loRdevice uint64 /* ioctl r/o */ |
|
| 23 |
- loOffset uint64 |
|
| 24 |
- loSizelimit uint64 /* bytes, 0 == max available */ |
|
| 25 |
- loNumber uint32 /* ioctl r/o */ |
|
| 26 |
- loEncryptType uint32 |
|
| 27 |
- loEncryptKeySize uint32 /* ioctl w/o */ |
|
| 28 |
- loFlags uint32 /* ioctl r/o */ |
|
| 29 |
- loFileName [LoNameSize]uint8 |
|
| 30 |
- loCryptName [LoNameSize]uint8 |
|
| 31 |
- loEncryptKey [LoKeySize]uint8 /* ioctl w/o */ |
|
| 32 |
- loInit [2]uint64 |
|
| 33 |
-} |
|
| 5 |
+import "golang.org/x/sys/unix" |
|
| 34 | 6 |
|
| 35 | 7 |
// IOCTL consts |
| 36 | 8 |
const ( |
| 37 |
- LoopSetFd = C.LOOP_SET_FD |
|
| 38 |
- LoopCtlGetFree = C.LOOP_CTL_GET_FREE |
|
| 39 |
- LoopGetStatus64 = C.LOOP_GET_STATUS64 |
|
| 40 |
- LoopSetStatus64 = C.LOOP_SET_STATUS64 |
|
| 41 |
- LoopClrFd = C.LOOP_CLR_FD |
|
| 42 |
- LoopSetCapacity = C.LOOP_SET_CAPACITY |
|
| 9 |
+ LoopSetFd = unix.LOOP_SET_FD |
|
| 10 |
+ LoopCtlGetFree = unix.LOOP_CTL_GET_FREE |
|
| 11 |
+ LoopGetStatus64 = unix.LOOP_GET_STATUS64 |
|
| 12 |
+ LoopSetStatus64 = unix.LOOP_SET_STATUS64 |
|
| 13 |
+ LoopClrFd = unix.LOOP_CLR_FD |
|
| 14 |
+ LoopSetCapacity = unix.LOOP_SET_CAPACITY |
|
| 43 | 15 |
) |
| 44 | 16 |
|
| 45 | 17 |
// LOOP consts. |
| 46 | 18 |
const ( |
| 47 |
- LoFlagsAutoClear = C.LO_FLAGS_AUTOCLEAR |
|
| 48 |
- LoFlagsReadOnly = C.LO_FLAGS_READ_ONLY |
|
| 49 |
- LoFlagsPartScan = C.LO_FLAGS_PARTSCAN |
|
| 50 |
- LoKeySize = C.LO_KEY_SIZE |
|
| 51 |
- LoNameSize = C.LO_NAME_SIZE |
|
| 19 |
+ LoFlagsAutoClear = unix.LO_FLAGS_AUTOCLEAR |
|
| 20 |
+ LoFlagsReadOnly = unix.LO_FLAGS_READ_ONLY |
|
| 21 |
+ LoFlagsPartScan = unix.LO_FLAGS_PARTSCAN |
|
| 22 |
+ LoKeySize = unix.LO_KEY_SIZE |
|
| 23 |
+ LoNameSize = unix.LO_NAME_SIZE |
|
| 52 | 24 |
) |
| ... | ... |
@@ -16,7 +16,7 @@ func getLoopbackBackingFile(file *os.File) (uint64, uint64, error) {
|
| 16 | 16 |
logrus.Errorf("Error get loopback backing file: %s", err)
|
| 17 | 17 |
return 0, 0, ErrGetLoopbackBackingFile |
| 18 | 18 |
} |
| 19 |
- return loopInfo.loDevice, loopInfo.loInode, nil |
|
| 19 |
+ return loopInfo.Device, loopInfo.Inode, nil |
|
| 20 | 20 |
} |
| 21 | 21 |
|
| 22 | 22 |
// SetCapacity reloads the size for the loopback device. |