aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initdev.go
diff options
context:
space:
mode:
Diffstat (limited to 'container/initdev.go')
-rw-r--r--container/initdev.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/container/initdev.go b/container/initdev.go
index b3192912..43ef5247 100644
--- a/container/initdev.go
+++ b/container/initdev.go
@@ -72,8 +72,9 @@ func (d *MountDevOp) apply(state *setupState, k syscallDispatcher) error {
}
}
+ devShmPath := path.Join(target, "shm")
devPtsPath := path.Join(target, "pts")
- for _, name := range []string{path.Join(target, "shm"), devPtsPath} {
+ for _, name := range []string{devShmPath, devPtsPath} {
if err := k.mkdir(name, state.ParentPerm); err != nil {
return wrapErrSelf(err)
}
@@ -117,8 +118,12 @@ func (d *MountDevOp) apply(state *setupState, k syscallDispatcher) error {
if d.Write {
return nil
}
- return wrapErrSuffix(k.remount(target, MS_RDONLY),
- fmt.Sprintf("cannot remount %q:", target))
+
+ if err := k.remount(target, MS_RDONLY); err != nil {
+ return wrapErrSuffix(k.remount(target, MS_RDONLY),
+ fmt.Sprintf("cannot remount %q:", target))
+ }
+ return k.mountTmpfs(SourceTmpfs, devShmPath, MS_NOSUID|MS_NODEV, 0, 01777)
}
func (d *MountDevOp) Is(op Op) bool {