Merge release-20191114.0-32-g97d2c9a (automated)

This commit is contained in:
gVisor bot 2019-11-25 19:46:52 +00:00
commit 876b3bbcfe
1 changed files with 16 additions and 2 deletions

View File

@ -465,6 +465,13 @@ func (m *mountHint) checkCompatible(mount specs.Mount) error {
return nil return nil
} }
func (m *mountHint) fileAccessType() FileAccessType {
if m.share == container {
return FileAccessExclusive
}
return FileAccessShared
}
func filterUnsupportedOptions(mount specs.Mount) []string { func filterUnsupportedOptions(mount specs.Mount) []string {
rv := make([]string, 0, len(mount.Options)) rv := make([]string, 0, len(mount.Options))
for _, o := range mount.Options { for _, o := range mount.Options {
@ -764,8 +771,7 @@ func (c *containerMounter) getMountNameAndOptions(conf *Config, m specs.Mount) (
case bind: case bind:
fd := c.fds.remove() fd := c.fds.remove()
fsName = "9p" fsName = "9p"
// Non-root bind mounts are always shared. opts = p9MountOptions(fd, c.getMountAccessType(m))
opts = p9MountOptions(fd, FileAccessShared)
// If configured, add overlay to all writable mounts. // If configured, add overlay to all writable mounts.
useOverlay = conf.Overlay && !mountFlags(m.Options).ReadOnly useOverlay = conf.Overlay && !mountFlags(m.Options).ReadOnly
@ -778,6 +784,14 @@ func (c *containerMounter) getMountNameAndOptions(conf *Config, m specs.Mount) (
return fsName, opts, useOverlay, nil return fsName, opts, useOverlay, nil
} }
func (c *containerMounter) getMountAccessType(mount specs.Mount) FileAccessType {
if hint := c.hints.findMount(mount); hint != nil {
return hint.fileAccessType()
}
// Non-root bind mounts are always shared if no hints were provided.
return FileAccessShared
}
// mountSubmount mounts volumes inside the container's root. Because mounts may // mountSubmount mounts volumes inside the container's root. Because mounts may
// be readonly, a lower ramfs overlay is added to create the mount point dir. // be readonly, a lower ramfs overlay is added to create the mount point dir.
// Another overlay is added with tmpfs on top if Config.Overlay is true. // Another overlay is added with tmpfs on top if Config.Overlay is true.