diff options
-rw-r--r-- | pkg/sentry/fs/gofer/path.go | 4 | ||||
-rw-r--r-- | pkg/sentry/fs/host/inode.go | 2 | ||||
-rw-r--r-- | runsc/fsgofer/fsgofer.go | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/pkg/sentry/fs/gofer/path.go b/pkg/sentry/fs/gofer/path.go index babfa4560..148e2f038 100644 --- a/pkg/sentry/fs/gofer/path.go +++ b/pkg/sentry/fs/gofer/path.go @@ -281,9 +281,9 @@ func (i *inodeOperations) Bind(ctx context.Context, dir *fs.Inode, name string, } // CreateFifo implements fs.InodeOperations.CreateFifo. Gofer nodes do not support the -// creation of fifos and always returns EOPNOTSUPP. +// creation of fifos and always returns EPERM. func (*inodeOperations) CreateFifo(context.Context, *fs.Inode, string, fs.FilePermissions) error { - return syscall.EOPNOTSUPP + return syscall.EPERM } // Remove implements InodeOperations.Remove. diff --git a/pkg/sentry/fs/host/inode.go b/pkg/sentry/fs/host/inode.go index ebf2154bc..7a230e426 100644 --- a/pkg/sentry/fs/host/inode.go +++ b/pkg/sentry/fs/host/inode.go @@ -287,7 +287,7 @@ func (*inodeOperations) CreateHardLink(context.Context, *fs.Inode, *fs.Inode, st // CreateFifo implements fs.InodeOperations.CreateFifo. func (*inodeOperations) CreateFifo(context.Context, *fs.Inode, string, fs.FilePermissions) error { - return syserror.EOPNOTSUPP + return syserror.EPERM } // Remove implements fs.InodeOperations.Remove. diff --git a/runsc/fsgofer/fsgofer.go b/runsc/fsgofer/fsgofer.go index b185015b6..2cf50290a 100644 --- a/runsc/fsgofer/fsgofer.go +++ b/runsc/fsgofer/fsgofer.go @@ -860,7 +860,10 @@ func (l *localFile) Link(target p9.File, newName string) error { // // Not implemented. func (*localFile) Mknod(_ string, _ p9.FileMode, _ uint32, _ uint32, _ p9.UID, _ p9.GID) (p9.QID, error) { - return p9.QID{}, syscall.ENOSYS + // From mknod(2) man page: + // "EPERM: [...] if the filesystem containing pathname does not support + // the type of node requested." + return p9.QID{}, syscall.EPERM } // UnlinkAt implements p9.File. |