summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fsimpl/tmpfs/socket_file.go
diff options
context:
space:
mode:
authorDean Deng <deandeng@google.com>2020-04-06 07:30:20 -0700
committergVisor bot <gvisor-bot@google.com>2020-04-06 07:31:27 -0700
commit00d9776a4bb1cc1d7125af7d3e54a939a4f3847a (patch)
tree4fdeebc6751a19977b42af8756d894a692a8b5da /pkg/sentry/fsimpl/tmpfs/socket_file.go
parent748290236408f2c3e33b5f208352f8fd2ecbfa1e (diff)
Add socket files to tmpfs VFS2.
Updates #1476. PiperOrigin-RevId: 305024274
Diffstat (limited to 'pkg/sentry/fsimpl/tmpfs/socket_file.go')
-rw-r--r--pkg/sentry/fsimpl/tmpfs/socket_file.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/sentry/fsimpl/tmpfs/socket_file.go b/pkg/sentry/fsimpl/tmpfs/socket_file.go
new file mode 100644
index 000000000..25c2321af
--- /dev/null
+++ b/pkg/sentry/fsimpl/tmpfs/socket_file.go
@@ -0,0 +1,34 @@
+// Copyright 2019 The gVisor Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tmpfs
+
+import (
+ "gvisor.dev/gvisor/pkg/abi/linux"
+ "gvisor.dev/gvisor/pkg/sentry/kernel/auth"
+ "gvisor.dev/gvisor/pkg/sentry/socket/unix/transport"
+)
+
+// socketFile is a socket (=S_IFSOCK) tmpfs file.
+type socketFile struct {
+ inode inode
+ ep transport.BoundEndpoint
+}
+
+func (fs *filesystem) newSocketFile(creds *auth.Credentials, mode linux.FileMode, ep transport.BoundEndpoint) *inode {
+ file := &socketFile{ep: ep}
+ file.inode.init(file, fs, creds, mode)
+ file.inode.nlink = 1 // from parent directory
+ return &file.inode
+}