summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fs/gofer/fs.go
diff options
context:
space:
mode:
authorJamie Liu <jamieliu@google.com>2019-08-29 10:50:48 -0700
committerNicolas Lacasse <nlacasse@google.com>2019-08-29 14:01:03 -0700
commit36a8949b2a52aabbe3f0548f1207c133da113c56 (patch)
tree37da2f9a78fba1cd8243e9cf311de96060e7a11a /pkg/sentry/fs/gofer/fs.go
parent6e8fc27dc5de8ed0a04fe943a6354c0133bfc63f (diff)
Add limit_host_fd_translation Gofer mount option.
PiperOrigin-RevId: 266177409
Diffstat (limited to 'pkg/sentry/fs/gofer/fs.go')
-rw-r--r--pkg/sentry/fs/gofer/fs.go22
1 files changed, 16 insertions, 6 deletions
diff --git a/pkg/sentry/fs/gofer/fs.go b/pkg/sentry/fs/gofer/fs.go
index 69999dc28..8f8ab5d29 100644
--- a/pkg/sentry/fs/gofer/fs.go
+++ b/pkg/sentry/fs/gofer/fs.go
@@ -54,6 +54,10 @@ const (
// sandbox using files backed by the gofer. If set to false, unix sockets
// cannot be bound to gofer files without an overlay on top.
privateUnixSocketKey = "privateunixsocket"
+
+ // If present, sets CachingInodeOperationsOptions.LimitHostFDTranslation to
+ // true.
+ limitHostFDTranslationKey = "limit_host_fd_translation"
)
// defaultAname is the default attach name.
@@ -134,12 +138,13 @@ func (f *filesystem) Mount(ctx context.Context, device string, flags fs.MountSou
// opts are parsed 9p mount options.
type opts struct {
- fd int
- aname string
- policy cachePolicy
- msize uint32
- version string
- privateunixsocket bool
+ fd int
+ aname string
+ policy cachePolicy
+ msize uint32
+ version string
+ privateunixsocket bool
+ limitHostFDTranslation bool
}
// options parses mount(2) data into structured options.
@@ -237,6 +242,11 @@ func options(data string) (opts, error) {
delete(options, privateUnixSocketKey)
}
+ if _, ok := options[limitHostFDTranslationKey]; ok {
+ o.limitHostFDTranslation = true
+ delete(options, limitHostFDTranslationKey)
+ }
+
// Fail to attach if the caller wanted us to do something that we
// don't support.
if len(options) > 0 {