diff options
Diffstat (limited to 'pkg/sentry/fs')
-rwxr-xr-x | pkg/sentry/fs/proc/proc_state_autogen.go | 4 | ||||
-rw-r--r-- | pkg/sentry/fs/proc/sys_net.go | 17 | ||||
-rw-r--r-- | pkg/sentry/fs/tty/master.go | 6 | ||||
-rw-r--r-- | pkg/sentry/fs/tty/slave.go | 6 | ||||
-rwxr-xr-x | pkg/sentry/fs/tty/tty_state_autogen.go | 4 |
5 files changed, 26 insertions, 11 deletions
diff --git a/pkg/sentry/fs/proc/proc_state_autogen.go b/pkg/sentry/fs/proc/proc_state_autogen.go index eedd011a8..1fc5cece2 100755 --- a/pkg/sentry/fs/proc/proc_state_autogen.go +++ b/pkg/sentry/fs/proc/proc_state_autogen.go @@ -382,15 +382,15 @@ func (x *tcpMemFile) load(m state.Map) { func (x *tcpSack) beforeSave() {} func (x *tcpSack) save(m state.Map) { x.beforeSave() + m.Save("SimpleFileInode", &x.SimpleFileInode) m.Save("stack", &x.stack) m.Save("enabled", &x.enabled) - m.Save("SimpleFileInode", &x.SimpleFileInode) } func (x *tcpSack) load(m state.Map) { + m.Load("SimpleFileInode", &x.SimpleFileInode) m.LoadWait("stack", &x.stack) m.Load("enabled", &x.enabled) - m.Load("SimpleFileInode", &x.SimpleFileInode) m.AfterLoad(x.afterLoad) } diff --git a/pkg/sentry/fs/proc/sys_net.go b/pkg/sentry/fs/proc/sys_net.go index f3b63dfc2..bd93f83fa 100644 --- a/pkg/sentry/fs/proc/sys_net.go +++ b/pkg/sentry/fs/proc/sys_net.go @@ -64,7 +64,7 @@ var _ fs.InodeOperations = (*tcpMemInode)(nil) func newTCPMemInode(ctx context.Context, msrc *fs.MountSource, s inet.Stack, dir tcpMemDir) *fs.Inode { tm := &tcpMemInode{ - SimpleFileInode: *fsutil.NewSimpleFileInode(ctx, fs.RootOwner, fs.FilePermsFromMode(0444), linux.PROC_SUPER_MAGIC), + SimpleFileInode: *fsutil.NewSimpleFileInode(ctx, fs.RootOwner, fs.FilePermsFromMode(0644), linux.PROC_SUPER_MAGIC), s: s, dir: dir, } @@ -77,6 +77,11 @@ func newTCPMemInode(ctx context.Context, msrc *fs.MountSource, s inet.Stack, dir return fs.NewInode(ctx, tm, msrc, sattr) } +// Truncate implements fs.InodeOperations.Truncate. +func (tcpMemInode) Truncate(context.Context, *fs.Inode, int64) error { + return nil +} + // GetFile implements fs.InodeOperations.GetFile. func (m *tcpMemInode) GetFile(ctx context.Context, dirent *fs.Dirent, flags fs.FileFlags) (*fs.File, error) { flags.Pread = true @@ -168,14 +173,15 @@ func writeSize(dirType tcpMemDir, s inet.Stack, size inet.TCPBufferSize) error { // +stateify savable type tcpSack struct { + fsutil.SimpleFileInode + stack inet.Stack `state:"wait"` enabled *bool - fsutil.SimpleFileInode } func newTCPSackInode(ctx context.Context, msrc *fs.MountSource, s inet.Stack) *fs.Inode { ts := &tcpSack{ - SimpleFileInode: *fsutil.NewSimpleFileInode(ctx, fs.RootOwner, fs.FilePermsFromMode(0444), linux.PROC_SUPER_MAGIC), + SimpleFileInode: *fsutil.NewSimpleFileInode(ctx, fs.RootOwner, fs.FilePermsFromMode(0644), linux.PROC_SUPER_MAGIC), stack: s, } sattr := fs.StableAttr{ @@ -187,6 +193,11 @@ func newTCPSackInode(ctx context.Context, msrc *fs.MountSource, s inet.Stack) *f return fs.NewInode(ctx, ts, msrc, sattr) } +// Truncate implements fs.InodeOperations.Truncate. +func (tcpSack) Truncate(context.Context, *fs.Inode, int64) error { + return nil +} + // GetFile implements fs.InodeOperations.GetFile. func (s *tcpSack) GetFile(ctx context.Context, dirent *fs.Dirent, flags fs.FileFlags) (*fs.File, error) { flags.Pread = true diff --git a/pkg/sentry/fs/tty/master.go b/pkg/sentry/fs/tty/master.go index bc56be696..934828c12 100644 --- a/pkg/sentry/fs/tty/master.go +++ b/pkg/sentry/fs/tty/master.go @@ -32,7 +32,6 @@ import ( // +stateify savable type masterInodeOperations struct { fsutil.SimpleFileInode - fsutil.InodeNoopTruncate // d is the containing dir. d *dirInodeOperations @@ -77,6 +76,11 @@ func newMasterInode(ctx context.Context, d *dirInodeOperations, owner fs.FileOwn func (mi *masterInodeOperations) Release(ctx context.Context) { } +// Truncate implements fs.InodeOperations.Truncate. +func (masterInodeOperations) Truncate(context.Context, *fs.Inode, int64) error { + return nil +} + // GetFile implements fs.InodeOperations.GetFile. // // It allocates a new terminal. diff --git a/pkg/sentry/fs/tty/slave.go b/pkg/sentry/fs/tty/slave.go index 4cbea0367..2a51e6bab 100644 --- a/pkg/sentry/fs/tty/slave.go +++ b/pkg/sentry/fs/tty/slave.go @@ -31,7 +31,6 @@ import ( // +stateify savable type slaveInodeOperations struct { fsutil.SimpleFileInode - fsutil.InodeNoopTruncate // d is the containing dir. d *dirInodeOperations @@ -73,6 +72,11 @@ func (si *slaveInodeOperations) Release(ctx context.Context) { si.t.DecRef() } +// Truncate implements fs.InodeOperations.Truncate. +func (slaveInodeOperations) Truncate(context.Context, *fs.Inode, int64) error { + return nil +} + // GetFile implements fs.InodeOperations.GetFile. // // This may race with destruction of the terminal. If the terminal is gone, it diff --git a/pkg/sentry/fs/tty/tty_state_autogen.go b/pkg/sentry/fs/tty/tty_state_autogen.go index 676e531c7..c54600104 100755 --- a/pkg/sentry/fs/tty/tty_state_autogen.go +++ b/pkg/sentry/fs/tty/tty_state_autogen.go @@ -101,14 +101,12 @@ func (x *masterInodeOperations) beforeSave() {} func (x *masterInodeOperations) save(m state.Map) { x.beforeSave() m.Save("SimpleFileInode", &x.SimpleFileInode) - m.Save("InodeNoopTruncate", &x.InodeNoopTruncate) m.Save("d", &x.d) } func (x *masterInodeOperations) afterLoad() {} func (x *masterInodeOperations) load(m state.Map) { m.Load("SimpleFileInode", &x.SimpleFileInode) - m.Load("InodeNoopTruncate", &x.InodeNoopTruncate) m.Load("d", &x.d) } @@ -148,7 +146,6 @@ func (x *slaveInodeOperations) beforeSave() {} func (x *slaveInodeOperations) save(m state.Map) { x.beforeSave() m.Save("SimpleFileInode", &x.SimpleFileInode) - m.Save("InodeNoopTruncate", &x.InodeNoopTruncate) m.Save("d", &x.d) m.Save("t", &x.t) } @@ -156,7 +153,6 @@ func (x *slaveInodeOperations) save(m state.Map) { func (x *slaveInodeOperations) afterLoad() {} func (x *slaveInodeOperations) load(m state.Map) { m.Load("SimpleFileInode", &x.SimpleFileInode) - m.Load("InodeNoopTruncate", &x.InodeNoopTruncate) m.Load("d", &x.d) m.Load("t", &x.t) } |