summaryrefslogtreecommitdiff
path: root/vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go')
-rw-r--r--vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go34
1 files changed, 18 insertions, 16 deletions
diff --git a/vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go b/vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go
index 702f913ec..5011f373d 100644
--- a/vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go
+++ b/vendor/github.com/opencontainers/runc/libcontainer/devices/devices.go
@@ -6,7 +6,6 @@ import (
"os"
"path/filepath"
- "github.com/opencontainers/runc/libcontainer/configs"
"golang.org/x/sys/unix"
)
@@ -23,7 +22,7 @@ var (
// Given the path to a device and its cgroup_permissions(which cannot be easily queried) look up the
// information about a linux device and return that information as a Device struct.
-func DeviceFromPath(path, permissions string) (*configs.Device, error) {
+func DeviceFromPath(path, permissions string) (*Device, error) {
var stat unix.Stat_t
err := unixLstat(path, &stat)
if err != nil {
@@ -31,28 +30,28 @@ func DeviceFromPath(path, permissions string) (*configs.Device, error) {
}
var (
- devType configs.DeviceType
+ devType Type
mode = stat.Mode
devNumber = uint64(stat.Rdev)
major = unix.Major(devNumber)
minor = unix.Minor(devNumber)
)
- switch {
- case mode&unix.S_IFBLK == unix.S_IFBLK:
- devType = configs.BlockDevice
- case mode&unix.S_IFCHR == unix.S_IFCHR:
- devType = configs.CharDevice
- case mode&unix.S_IFIFO == unix.S_IFIFO:
- devType = configs.FifoDevice
+ switch mode & unix.S_IFMT {
+ case unix.S_IFBLK:
+ devType = BlockDevice
+ case unix.S_IFCHR:
+ devType = CharDevice
+ case unix.S_IFIFO:
+ devType = FifoDevice
default:
return nil, ErrNotADevice
}
- return &configs.Device{
- DeviceRule: configs.DeviceRule{
+ return &Device{
+ Rule: Rule{
Type: devType,
Major: int64(major),
Minor: int64(minor),
- Permissions: configs.DevicePermissions(permissions),
+ Permissions: Permissions(permissions),
},
Path: path,
FileMode: os.FileMode(mode),
@@ -62,18 +61,18 @@ func DeviceFromPath(path, permissions string) (*configs.Device, error) {
}
// HostDevices returns all devices that can be found under /dev directory.
-func HostDevices() ([]*configs.Device, error) {
+func HostDevices() ([]*Device, error) {
return GetDevices("/dev")
}
// GetDevices recursively traverses a directory specified by path
// and returns all devices found there.
-func GetDevices(path string) ([]*configs.Device, error) {
+func GetDevices(path string) ([]*Device, error) {
files, err := ioutilReadDir(path)
if err != nil {
return nil, err
}
- var out []*configs.Device
+ var out []*Device
for _, f := range files {
switch {
case f.IsDir():
@@ -104,6 +103,9 @@ func GetDevices(path string) ([]*configs.Device, error) {
}
return nil, err
}
+ if device.Type == FifoDevice {
+ continue
+ }
out = append(out, device)
}
return out, nil