Browse code

devmapper: Remove sys.go mocking framework

This is no longer needed, as the tests are gone.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)

Alexander Larsson authored on 2014/05/16 21:10:02
Showing 7 changed files
... ...
@@ -4,6 +4,9 @@ package devmapper
4 4
 
5 5
 import (
6 6
 	"fmt"
7
+	"os"
8
+	"syscall"
9
+
7 10
 	"github.com/dotcloud/docker/utils"
8 11
 )
9 12
 
... ...
@@ -14,7 +17,7 @@ func stringToLoopName(src string) [LoNameSize]uint8 {
14 14
 }
15 15
 
16 16
 func getNextFreeLoopbackIndex() (int, error) {
17
-	f, err := osOpenFile("/dev/loop-control", osORdOnly, 0644)
17
+	f, err := os.OpenFile("/dev/loop-control", os.O_RDONLY, 0644)
18 18
 	if err != nil {
19 19
 		return 0, err
20 20
 	}
... ...
@@ -27,27 +30,27 @@ func getNextFreeLoopbackIndex() (int, error) {
27 27
 	return index, err
28 28
 }
29 29
 
30
-func openNextAvailableLoopback(index int, sparseFile *osFile) (loopFile *osFile, err error) {
30
+func openNextAvailableLoopback(index int, sparseFile *os.File) (loopFile *os.File, err error) {
31 31
 	// Start looking for a free /dev/loop
32 32
 	for {
33 33
 		target := fmt.Sprintf("/dev/loop%d", index)
34 34
 		index++
35 35
 
36
-		fi, err := osStat(target)
36
+		fi, err := os.Stat(target)
37 37
 		if err != nil {
38
-			if osIsNotExist(err) {
38
+			if os.IsNotExist(err) {
39 39
 				utils.Errorf("There are no more loopback device available.")
40 40
 			}
41 41
 			return nil, ErrAttachLoopbackDevice
42 42
 		}
43 43
 
44
-		if fi.Mode()&osModeDevice != osModeDevice {
44
+		if fi.Mode()&os.ModeDevice != os.ModeDevice {
45 45
 			utils.Errorf("Loopback device %s is not a block device.", target)
46 46
 			continue
47 47
 		}
48 48
 
49 49
 		// OpenFile adds O_CLOEXEC
50
-		loopFile, err = osOpenFile(target, osORdWr, 0644)
50
+		loopFile, err = os.OpenFile(target, os.O_RDWR, 0644)
51 51
 		if err != nil {
52 52
 			utils.Errorf("Error openning loopback device: %s", err)
53 53
 			return nil, ErrAttachLoopbackDevice
... ...
@@ -58,7 +61,7 @@ func openNextAvailableLoopback(index int, sparseFile *osFile) (loopFile *osFile,
58 58
 			loopFile.Close()
59 59
 
60 60
 			// If the error is EBUSY, then try the next loopback
61
-			if err != sysEBusy {
61
+			if err != syscall.EBUSY {
62 62
 				utils.Errorf("Cannot set up loopback device %s: %s", target, err)
63 63
 				return nil, ErrAttachLoopbackDevice
64 64
 			}
... ...
@@ -80,8 +83,8 @@ func openNextAvailableLoopback(index int, sparseFile *osFile) (loopFile *osFile,
80 80
 }
81 81
 
82 82
 // attachLoopDevice attaches the given sparse file to the next
83
-// available loopback device. It returns an opened *osFile.
84
-func attachLoopDevice(sparseName string) (loop *osFile, err error) {
83
+// available loopback device. It returns an opened *os.File.
84
+func attachLoopDevice(sparseName string) (loop *os.File, err error) {
85 85
 
86 86
 	// Try to retrieve the next available loopback device via syscall.
87 87
 	// If it fails, we discard error and start loopking for a
... ...
@@ -92,7 +95,7 @@ func attachLoopDevice(sparseName string) (loop *osFile, err error) {
92 92
 	}
93 93
 
94 94
 	// OpenFile adds O_CLOEXEC
95
-	sparseFile, err := osOpenFile(sparseName, osORdWr, 0644)
95
+	sparseFile, err := os.OpenFile(sparseName, os.O_RDWR, 0644)
96 96
 	if err != nil {
97 97
 		utils.Errorf("Error openning sparse file %s: %s", sparseName, err)
98 98
 		return nil, ErrAttachLoopbackDevice
... ...
@@ -8,6 +8,8 @@ import (
8 8
 	"fmt"
9 9
 	"io"
10 10
 	"io/ioutil"
11
+	"os"
12
+	"os/exec"
11 13
 	"path"
12 14
 	"path/filepath"
13 15
 	"strconv"
... ...
@@ -135,7 +137,7 @@ func (devices *DeviceSet) hasImage(name string) bool {
135 135
 	dirname := devices.loopbackDir()
136 136
 	filename := path.Join(dirname, name)
137 137
 
138
-	_, err := osStat(filename)
138
+	_, err := os.Stat(filename)
139 139
 	return err == nil
140 140
 }
141 141
 
... ...
@@ -147,16 +149,16 @@ func (devices *DeviceSet) ensureImage(name string, size int64) (string, error) {
147 147
 	dirname := devices.loopbackDir()
148 148
 	filename := path.Join(dirname, name)
149 149
 
150
-	if err := osMkdirAll(dirname, 0700); err != nil && !osIsExist(err) {
150
+	if err := os.MkdirAll(dirname, 0700); err != nil && !os.IsExist(err) {
151 151
 		return "", err
152 152
 	}
153 153
 
154
-	if _, err := osStat(filename); err != nil {
155
-		if !osIsNotExist(err) {
154
+	if _, err := os.Stat(filename); err != nil {
155
+		if !os.IsNotExist(err) {
156 156
 			return "", err
157 157
 		}
158 158
 		utils.Debugf("Creating loopback file %s for device-manage use", filename)
159
-		file, err := osOpenFile(filename, osORdWr|osOCreate, 0600)
159
+		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, 0600)
160 160
 		if err != nil {
161 161
 			return "", err
162 162
 		}
... ...
@@ -175,7 +177,7 @@ func (devices *DeviceSet) allocateTransactionId() uint64 {
175 175
 }
176 176
 
177 177
 func (devices *DeviceSet) removeMetadata(info *DevInfo) error {
178
-	if err := osRemoveAll(devices.metadataFile(info)); err != nil {
178
+	if err := os.RemoveAll(devices.metadataFile(info)); err != nil {
179 179
 		return fmt.Errorf("Error removing metadata file %s: %s", devices.metadataFile(info), err)
180 180
 	}
181 181
 	return nil
... ...
@@ -204,7 +206,7 @@ func (devices *DeviceSet) saveMetadata(info *DevInfo) error {
204 204
 	if err := tmpFile.Close(); err != nil {
205 205
 		return fmt.Errorf("Error closing metadata file %s: %s", tmpFile.Name(), err)
206 206
 	}
207
-	if err := osRename(tmpFile.Name(), devices.metadataFile(info)); err != nil {
207
+	if err := os.Rename(tmpFile.Name(), devices.metadataFile(info)); err != nil {
208 208
 		return fmt.Errorf("Error committing metadata file %s: %s", tmpFile.Name(), err)
209 209
 	}
210 210
 
... ...
@@ -271,9 +273,9 @@ func (devices *DeviceSet) activateDeviceIfNeeded(info *DevInfo) error {
271 271
 func (devices *DeviceSet) createFilesystem(info *DevInfo) error {
272 272
 	devname := info.DevName()
273 273
 
274
-	err := execRun("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname)
274
+	err := exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname).Run()
275 275
 	if err != nil {
276
-		err = execRun("mkfs.ext4", "-E", "discard,lazy_itable_init=0", devname)
276
+		err = exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0", devname).Run()
277 277
 	}
278 278
 	if err != nil {
279 279
 		utils.Debugf("\n--->Err: %s\n", err)
... ...
@@ -298,7 +300,7 @@ func (devices *DeviceSet) initMetaData() error {
298 298
 	// Migrate old metadatafile
299 299
 
300 300
 	jsonData, err := ioutil.ReadFile(devices.oldMetadataFile())
301
-	if err != nil && !osIsNotExist(err) {
301
+	if err != nil && !os.IsNotExist(err) {
302 302
 		utils.Debugf("\n--->Err: %s\n", err)
303 303
 		return err
304 304
 	}
... ...
@@ -319,7 +321,7 @@ func (devices *DeviceSet) initMetaData() error {
319 319
 				devices.saveMetadata(info)
320 320
 			}
321 321
 		}
322
-		if err := osRename(devices.oldMetadataFile(), devices.oldMetadataFile()+".migrated"); err != nil {
322
+		if err := os.Rename(devices.oldMetadataFile(), devices.oldMetadataFile()+".migrated"); err != nil {
323 323
 			return err
324 324
 		}
325 325
 
... ...
@@ -408,11 +410,11 @@ func (devices *DeviceSet) setupBaseImage() error {
408 408
 func setCloseOnExec(name string) {
409 409
 	if fileInfos, _ := ioutil.ReadDir("/proc/self/fd"); fileInfos != nil {
410 410
 		for _, i := range fileInfos {
411
-			link, _ := osReadlink(filepath.Join("/proc/self/fd", i.Name()))
411
+			link, _ := os.Readlink(filepath.Join("/proc/self/fd", i.Name()))
412 412
 			if link == name {
413 413
 				fd, err := strconv.Atoi(i.Name())
414 414
 				if err == nil {
415
-					sysCloseOnExec(fd)
415
+					syscall.CloseOnExec(fd)
416 416
 				}
417 417
 			}
418 418
 		}
... ...
@@ -440,7 +442,7 @@ func (devices *DeviceSet) ResizePool(size int64) error {
440 440
 	datafilename := path.Join(dirname, "data")
441 441
 	metadatafilename := path.Join(dirname, "metadata")
442 442
 
443
-	datafile, err := osOpenFile(datafilename, osORdWr, 0)
443
+	datafile, err := os.OpenFile(datafilename, os.O_RDWR, 0)
444 444
 	if datafile == nil {
445 445
 		return err
446 446
 	}
... ...
@@ -461,7 +463,7 @@ func (devices *DeviceSet) ResizePool(size int64) error {
461 461
 	}
462 462
 	defer dataloopback.Close()
463 463
 
464
-	metadatafile, err := osOpenFile(metadatafilename, osORdWr, 0)
464
+	metadatafile, err := os.OpenFile(metadatafilename, os.O_RDWR, 0)
465 465
 	if metadatafile == nil {
466 466
 		return err
467 467
 	}
... ...
@@ -504,17 +506,17 @@ func (devices *DeviceSet) ResizePool(size int64) error {
504 504
 func (devices *DeviceSet) initDevmapper(doInit bool) error {
505 505
 	logInit(devices)
506 506
 
507
-	if err := osMkdirAll(devices.metadataDir(), 0700); err != nil && !osIsExist(err) {
507
+	if err := os.MkdirAll(devices.metadataDir(), 0700); err != nil && !os.IsExist(err) {
508 508
 		return err
509 509
 	}
510 510
 
511 511
 	// Set the device prefix from the device id and inode of the docker root dir
512 512
 
513
-	st, err := osStat(devices.root)
513
+	st, err := os.Stat(devices.root)
514 514
 	if err != nil {
515 515
 		return fmt.Errorf("Error looking up dir %s: %s", devices.root, err)
516 516
 	}
517
-	sysSt := toSysStatT(st.Sys())
517
+	sysSt := st.Sys().(*syscall.Stat_t)
518 518
 	// "reg-" stands for "regular file".
519 519
 	// In the future we might use "dev-" for "device file", etc.
520 520
 	// docker-maj,min[-inode] stands for:
... ...
@@ -845,7 +847,7 @@ func (devices *DeviceSet) Shutdown() error {
845 845
 			// We use MNT_DETACH here in case it is still busy in some running
846 846
 			// container. This means it'll go away from the global scope directly,
847 847
 			// and the device will be released when that container dies.
848
-			if err := sysUnmount(info.mountPath, syscall.MNT_DETACH); err != nil {
848
+			if err := syscall.Unmount(info.mountPath, syscall.MNT_DETACH); err != nil {
849 849
 				utils.Debugf("Shutdown unmounting %s, error: %s\n", info.mountPath, err)
850 850
 			}
851 851
 
... ...
@@ -903,13 +905,13 @@ func (devices *DeviceSet) MountDevice(hash, path, mountLabel string) error {
903 903
 		return fmt.Errorf("Error activating devmapper device for '%s': %s", hash, err)
904 904
 	}
905 905
 
906
-	var flags uintptr = sysMsMgcVal
906
+	var flags uintptr = syscall.MS_MGC_VAL
907 907
 
908 908
 	mountOptions := label.FormatMountLabel("discard", mountLabel)
909
-	err = sysMount(info.DevName(), path, "ext4", flags, mountOptions)
910
-	if err != nil && err == sysEInval {
909
+	err = syscall.Mount(info.DevName(), path, "ext4", flags, mountOptions)
910
+	if err != nil && err == syscall.EINVAL {
911 911
 		mountOptions = label.FormatMountLabel("", mountLabel)
912
-		err = sysMount(info.DevName(), path, "ext4", flags, mountOptions)
912
+		err = syscall.Mount(info.DevName(), path, "ext4", flags, mountOptions)
913 913
 	}
914 914
 	if err != nil {
915 915
 		return fmt.Errorf("Error mounting '%s' on '%s': %s", info.DevName(), path, err)
... ...
@@ -946,7 +948,7 @@ func (devices *DeviceSet) UnmountDevice(hash string) error {
946 946
 	}
947 947
 
948 948
 	utils.Debugf("[devmapper] Unmount(%s)", info.mountPath)
949
-	if err := sysUnmount(info.mountPath, 0); err != nil {
949
+	if err := syscall.Unmount(info.mountPath, 0); err != nil {
950 950
 		utils.Debugf("\n--->Err: %s\n", err)
951 951
 		return err
952 952
 	}
... ...
@@ -5,9 +5,11 @@ package devmapper
5 5
 import (
6 6
 	"errors"
7 7
 	"fmt"
8
-	"github.com/dotcloud/docker/utils"
8
+	"os"
9 9
 	"runtime"
10 10
 	"syscall"
11
+
12
+	"github.com/dotcloud/docker/utils"
11 13
 )
12 14
 
13 15
 type DevmapperLogger interface {
... ...
@@ -184,7 +186,7 @@ func (t *Task) GetNextTarget(next uintptr) (nextPtr uintptr, start uint64,
184 184
 		start, length, targetType, params
185 185
 }
186 186
 
187
-func getLoopbackBackingFile(file *osFile) (uint64, uint64, error) {
187
+func getLoopbackBackingFile(file *os.File) (uint64, uint64, error) {
188 188
 	loopInfo, err := ioctlLoopGetStatus64(file.Fd())
189 189
 	if err != nil {
190 190
 		utils.Errorf("Error get loopback backing file: %s\n", err)
... ...
@@ -193,7 +195,7 @@ func getLoopbackBackingFile(file *osFile) (uint64, uint64, error) {
193 193
 	return loopInfo.loDevice, loopInfo.loInode, nil
194 194
 }
195 195
 
196
-func LoopbackSetCapacity(file *osFile) error {
196
+func LoopbackSetCapacity(file *os.File) error {
197 197
 	if err := ioctlLoopSetCapacity(file.Fd(), 0); err != nil {
198 198
 		utils.Errorf("Error loopbackSetCapacity: %s", err)
199 199
 		return ErrLoopbackSetCapacity
... ...
@@ -201,20 +203,20 @@ func LoopbackSetCapacity(file *osFile) error {
201 201
 	return nil
202 202
 }
203 203
 
204
-func FindLoopDeviceFor(file *osFile) *osFile {
204
+func FindLoopDeviceFor(file *os.File) *os.File {
205 205
 	stat, err := file.Stat()
206 206
 	if err != nil {
207 207
 		return nil
208 208
 	}
209
-	targetInode := stat.Sys().(*sysStatT).Ino
210
-	targetDevice := stat.Sys().(*sysStatT).Dev
209
+	targetInode := stat.Sys().(*syscall.Stat_t).Ino
210
+	targetDevice := stat.Sys().(*syscall.Stat_t).Dev
211 211
 
212 212
 	for i := 0; true; i++ {
213 213
 		path := fmt.Sprintf("/dev/loop%d", i)
214 214
 
215
-		file, err := osOpenFile(path, osORdWr, 0)
215
+		file, err := os.OpenFile(path, os.O_RDWR, 0)
216 216
 		if err != nil {
217
-			if osIsNotExist(err) {
217
+			if os.IsNotExist(err) {
218 218
 				return nil
219 219
 			}
220 220
 
... ...
@@ -284,7 +286,7 @@ func RemoveDevice(name string) error {
284 284
 	return nil
285 285
 }
286 286
 
287
-func GetBlockDeviceSize(file *osFile) (uint64, error) {
287
+func GetBlockDeviceSize(file *os.File) (uint64, error) {
288 288
 	size, err := ioctlBlkGetSize64(file.Fd())
289 289
 	if err != nil {
290 290
 		utils.Errorf("Error getblockdevicesize: %s", err)
... ...
@@ -294,7 +296,7 @@ func GetBlockDeviceSize(file *osFile) (uint64, error) {
294 294
 }
295 295
 
296 296
 func BlockDeviceDiscard(path string) error {
297
-	file, err := osOpenFile(path, osORdWr, 0)
297
+	file, err := os.OpenFile(path, os.O_RDWR, 0)
298 298
 	if err != nil {
299 299
 		return err
300 300
 	}
... ...
@@ -317,7 +319,7 @@ func BlockDeviceDiscard(path string) error {
317 317
 }
318 318
 
319 319
 // This is the programmatic example of "dmsetup create"
320
-func createPool(poolName string, dataFile, metadataFile *osFile) error {
320
+func createPool(poolName string, dataFile, metadataFile *os.File) error {
321 321
 	task, err := createTask(DeviceCreate, poolName)
322 322
 	if task == nil {
323 323
 		return err
... ...
@@ -347,7 +349,7 @@ func createPool(poolName string, dataFile, metadataFile *osFile) error {
347 347
 	return nil
348 348
 }
349 349
 
350
-func reloadPool(poolName string, dataFile, metadataFile *osFile) error {
350
+func reloadPool(poolName string, dataFile, metadataFile *os.File) error {
351 351
 	task, err := createTask(DeviceReload, poolName)
352 352
 	if task == nil {
353 353
 		return err
... ...
@@ -26,7 +26,7 @@ type Driver struct {
26 26
 	home string
27 27
 }
28 28
 
29
-var Init = func(home string) (graphdriver.Driver, error) {
29
+func Init(home string) (graphdriver.Driver, error) {
30 30
 	deviceSet, err := NewDeviceSet(home, true)
31 31
 	if err != nil {
32 32
 		return nil, err
... ...
@@ -94,7 +94,7 @@ func (d *Driver) Get(id, mountLabel string) (string, error) {
94 94
 	mp := path.Join(d.home, "mnt", id)
95 95
 
96 96
 	// Create the target directories if they don't exist
97
-	if err := osMkdirAll(mp, 0755); err != nil && !osIsExist(err) {
97
+	if err := os.MkdirAll(mp, 0755); err != nil && !os.IsExist(err) {
98 98
 		return "", err
99 99
 	}
100 100
 
... ...
@@ -104,13 +104,13 @@ func (d *Driver) Get(id, mountLabel string) (string, error) {
104 104
 	}
105 105
 
106 106
 	rootFs := path.Join(mp, "rootfs")
107
-	if err := osMkdirAll(rootFs, 0755); err != nil && !osIsExist(err) {
107
+	if err := os.MkdirAll(rootFs, 0755); err != nil && !os.IsExist(err) {
108 108
 		d.DeviceSet.UnmountDevice(id)
109 109
 		return "", err
110 110
 	}
111 111
 
112 112
 	idFile := path.Join(mp, "id")
113
-	if _, err := osStat(idFile); err != nil && osIsNotExist(err) {
113
+	if _, err := os.Stat(idFile); err != nil && os.IsNotExist(err) {
114 114
 		// Create an "id" file with the container/image id in it to help reconscruct this in case
115 115
 		// of later problems
116 116
 		if err := ioutil.WriteFile(idFile, []byte(id), 0600); err != nil {
... ...
@@ -3,11 +3,12 @@
3 3
 package devmapper
4 4
 
5 5
 import (
6
+	"syscall"
6 7
 	"unsafe"
7 8
 )
8 9
 
9 10
 func ioctlLoopCtlGetFree(fd uintptr) (int, error) {
10
-	index, _, err := sysSyscall(sysSysIoctl, fd, LoopCtlGetFree, 0)
11
+	index, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, LoopCtlGetFree, 0)
11 12
 	if err != 0 {
12 13
 		return 0, err
13 14
 	}
... ...
@@ -15,21 +16,21 @@ func ioctlLoopCtlGetFree(fd uintptr) (int, error) {
15 15
 }
16 16
 
17 17
 func ioctlLoopSetFd(loopFd, sparseFd uintptr) error {
18
-	if _, _, err := sysSyscall(sysSysIoctl, loopFd, LoopSetFd, sparseFd); err != 0 {
18
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, loopFd, LoopSetFd, sparseFd); err != 0 {
19 19
 		return err
20 20
 	}
21 21
 	return nil
22 22
 }
23 23
 
24 24
 func ioctlLoopSetStatus64(loopFd uintptr, loopInfo *LoopInfo64) error {
25
-	if _, _, err := sysSyscall(sysSysIoctl, loopFd, LoopSetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
25
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, loopFd, LoopSetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
26 26
 		return err
27 27
 	}
28 28
 	return nil
29 29
 }
30 30
 
31 31
 func ioctlLoopClrFd(loopFd uintptr) error {
32
-	if _, _, err := sysSyscall(sysSysIoctl, loopFd, LoopClrFd, 0); err != 0 {
32
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, loopFd, LoopClrFd, 0); err != 0 {
33 33
 		return err
34 34
 	}
35 35
 	return nil
... ...
@@ -38,14 +39,14 @@ func ioctlLoopClrFd(loopFd uintptr) error {
38 38
 func ioctlLoopGetStatus64(loopFd uintptr) (*LoopInfo64, error) {
39 39
 	loopInfo := &LoopInfo64{}
40 40
 
41
-	if _, _, err := sysSyscall(sysSysIoctl, loopFd, LoopGetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
41
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, loopFd, LoopGetStatus64, uintptr(unsafe.Pointer(loopInfo))); err != 0 {
42 42
 		return nil, err
43 43
 	}
44 44
 	return loopInfo, nil
45 45
 }
46 46
 
47 47
 func ioctlLoopSetCapacity(loopFd uintptr, value int) error {
48
-	if _, _, err := sysSyscall(sysSysIoctl, loopFd, LoopSetCapacity, uintptr(value)); err != 0 {
48
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, loopFd, LoopSetCapacity, uintptr(value)); err != 0 {
49 49
 		return err
50 50
 	}
51 51
 	return nil
... ...
@@ -53,7 +54,7 @@ func ioctlLoopSetCapacity(loopFd uintptr, value int) error {
53 53
 
54 54
 func ioctlBlkGetSize64(fd uintptr) (int64, error) {
55 55
 	var size int64
56
-	if _, _, err := sysSyscall(sysSysIoctl, fd, BlkGetSize64, uintptr(unsafe.Pointer(&size))); err != 0 {
56
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, BlkGetSize64, uintptr(unsafe.Pointer(&size))); err != 0 {
57 57
 		return 0, err
58 58
 	}
59 59
 	return size, nil
... ...
@@ -64,7 +65,7 @@ func ioctlBlkDiscard(fd uintptr, offset, length uint64) error {
64 64
 	r[0] = offset
65 65
 	r[1] = length
66 66
 
67
-	if _, _, err := sysSyscall(sysSysIoctl, fd, BlkDiscard, uintptr(unsafe.Pointer(&r[0]))); err != 0 {
67
+	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, BlkDiscard, uintptr(unsafe.Pointer(&r[0]))); err != 0 {
68 68
 		return err
69 69
 	}
70 70
 	return nil
... ...
@@ -3,25 +3,27 @@
3 3
 package devmapper
4 4
 
5 5
 import (
6
+	"os"
6 7
 	"path/filepath"
8
+	"syscall"
7 9
 )
8 10
 
9 11
 // FIXME: this is copy-pasted from the aufs driver.
10 12
 // It should be moved into the core.
11 13
 
12
-var Mounted = func(mountpoint string) (bool, error) {
13
-	mntpoint, err := osStat(mountpoint)
14
+func Mounted(mountpoint string) (bool, error) {
15
+	mntpoint, err := os.Stat(mountpoint)
14 16
 	if err != nil {
15
-		if osIsNotExist(err) {
17
+		if os.IsNotExist(err) {
16 18
 			return false, nil
17 19
 		}
18 20
 		return false, err
19 21
 	}
20
-	parent, err := osStat(filepath.Join(mountpoint, ".."))
22
+	parent, err := os.Stat(filepath.Join(mountpoint, ".."))
21 23
 	if err != nil {
22 24
 		return false, err
23 25
 	}
24
-	mntpointSt := toSysStatT(mntpoint.Sys())
25
-	parentSt := toSysStatT(parent.Sys())
26
+	mntpointSt := mntpoint.Sys().(*syscall.Stat_t)
27
+	parentSt := parent.Sys().(*syscall.Stat_t)
26 28
 	return mntpointSt.Dev != parentSt.Dev, nil
27 29
 }
28 30
deleted file mode 100644
... ...
@@ -1,57 +0,0 @@
1
-// +build linux,amd64
2
-
3
-package devmapper
4
-
5
-import (
6
-	"os"
7
-	"os/exec"
8
-	"syscall"
9
-)
10
-
11
-type (
12
-	sysStatT syscall.Stat_t
13
-	sysErrno syscall.Errno
14
-
15
-	osFile struct{ *os.File }
16
-)
17
-
18
-var (
19
-	sysMount       = syscall.Mount
20
-	sysUnmount     = syscall.Unmount
21
-	sysCloseOnExec = syscall.CloseOnExec
22
-	sysSyscall     = syscall.Syscall
23
-
24
-	osOpenFile = func(name string, flag int, perm os.FileMode) (*osFile, error) {
25
-		f, err := os.OpenFile(name, flag, perm)
26
-		return &osFile{File: f}, err
27
-	}
28
-	osOpen       = func(name string) (*osFile, error) { f, err := os.Open(name); return &osFile{File: f}, err }
29
-	osNewFile    = os.NewFile
30
-	osCreate     = os.Create
31
-	osStat       = os.Stat
32
-	osIsNotExist = os.IsNotExist
33
-	osIsExist    = os.IsExist
34
-	osMkdirAll   = os.MkdirAll
35
-	osRemoveAll  = os.RemoveAll
36
-	osRename     = os.Rename
37
-	osReadlink   = os.Readlink
38
-
39
-	execRun = func(name string, args ...string) error { return exec.Command(name, args...).Run() }
40
-)
41
-
42
-const (
43
-	sysMsMgcVal = syscall.MS_MGC_VAL
44
-	sysMsRdOnly = syscall.MS_RDONLY
45
-	sysEInval   = syscall.EINVAL
46
-	sysSysIoctl = syscall.SYS_IOCTL
47
-	sysEBusy    = syscall.EBUSY
48
-
49
-	osORdOnly    = os.O_RDONLY
50
-	osORdWr      = os.O_RDWR
51
-	osOCreate    = os.O_CREATE
52
-	osModeDevice = os.ModeDevice
53
-)
54
-
55
-func toSysStatT(i interface{}) *sysStatT {
56
-	return (*sysStatT)(i.(*syscall.Stat_t))
57
-}