summaryrefslogtreecommitdiffhomepage
path: root/runsc/boot
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2020-04-29 20:18:37 +0000
committergVisor bot <gvisor-bot@google.com>2020-04-29 20:18:37 +0000
commit3c9938407e3139ada541743ed65434a498c746be (patch)
treecb8a8f80a4ae58f112434065033fbe7a351d8a55 /runsc/boot
parent633d413b30734e629996821342b81d4e67e0cb22 (diff)
parentd5c34ba2ffef0b0aee38d4f96f06bc00b04b0a53 (diff)
Merge release-20200413.0-22-gd5c34ba (automated)
Diffstat (limited to 'runsc/boot')
-rw-r--r--runsc/boot/fs.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/runsc/boot/fs.go b/runsc/boot/fs.go
index 98cce60af..4875452e2 100644
--- a/runsc/boot/fs.go
+++ b/runsc/boot/fs.go
@@ -219,6 +219,9 @@ func mountFlags(opts []string) fs.MountSourceFlags {
mf.NoAtime = true
case "noexec":
mf.NoExec = true
+ case "bind", "rbind":
+ // When options include either "bind" or "rbind",
+ // it's converted to a 9P mount.
default:
log.Warningf("ignoring unknown mount option %q", o)
}
@@ -765,6 +768,16 @@ func (c *containerMounter) getMountNameAndOptions(conf *Config, m specs.Mount) (
useOverlay bool
)
+ for _, opt := range m.Options {
+ // When options include either "bind" or "rbind", this behaves as
+ // bind mount even if the mount type is equal to a filesystem supported
+ // on runsc.
+ if opt == "bind" || opt == "rbind" {
+ m.Type = bind
+ break
+ }
+ }
+
switch m.Type {
case devpts, devtmpfs, proc, sysfs:
fsName = m.Type