mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Minor vfs.FileDescriptionImpl fixes.
- Pass context.Context to OnClose(). - Pass memmap.MMapOpts to ConfigureMMap() by pointer so that implementations can actually mutate it as required. PiperOrigin-RevId: 274934967
This commit is contained in:
@@ -301,8 +301,8 @@ func (fd *directoryFD) Seek(ctx context.Context, offset int64, whence int32) (in
|
||||
return offset, nil
|
||||
}
|
||||
|
||||
// IterDirents implements vfs.FileDescriptionImpl.IterDirents.
|
||||
func (fd *directoryFD) ConfigureMMap(ctx context.Context, opts memmap.MMapOpts) error {
|
||||
// ConfigureMMap implements vfs.FileDescriptionImpl.ConfigureMMap.
|
||||
func (fd *directoryFD) ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error {
|
||||
// mmap(2) specifies that EACCESS should be returned for non-regular file fds.
|
||||
return syserror.EACCES
|
||||
}
|
||||
|
||||
@@ -43,9 +43,6 @@ func (fd *fileDescription) inode() *inode {
|
||||
return fd.vfsfd.VirtualDentry().Dentry().Impl().(*dentry).inode
|
||||
}
|
||||
|
||||
// OnClose implements vfs.FileDescriptionImpl.OnClose.
|
||||
func (fd *fileDescription) OnClose() error { return nil }
|
||||
|
||||
// StatusFlags implements vfs.FileDescriptionImpl.StatusFlags.
|
||||
func (fd *fileDescription) StatusFlags(ctx context.Context) (uint32, error) {
|
||||
return fd.flags, nil
|
||||
|
||||
@@ -152,8 +152,8 @@ func (fd *regularFileFD) Seek(ctx context.Context, offset int64, whence int32) (
|
||||
return offset, nil
|
||||
}
|
||||
|
||||
// IterDirents implements vfs.FileDescriptionImpl.IterDirents.
|
||||
func (fd *regularFileFD) ConfigureMMap(ctx context.Context, opts memmap.MMapOpts) error {
|
||||
// ConfigureMMap implements vfs.FileDescriptionImpl.ConfigureMMap.
|
||||
func (fd *regularFileFD) ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error {
|
||||
// TODO(b/134676337): Implement mmap(2).
|
||||
return syserror.ENODEV
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ func (fd *symlinkFD) Seek(ctx context.Context, offset int64, whence int32) (int6
|
||||
return 0, syserror.EBADF
|
||||
}
|
||||
|
||||
// IterDirents implements vfs.FileDescriptionImpl.IterDirents.
|
||||
func (fd *symlinkFD) ConfigureMMap(ctx context.Context, opts memmap.MMapOpts) error {
|
||||
// ConfigureMMap implements vfs.FileDescriptionImpl.ConfigureMMap.
|
||||
func (fd *symlinkFD) ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error {
|
||||
return syserror.EBADF
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ type FileDescriptionImpl interface {
|
||||
// OnClose is called when a file descriptor representing the
|
||||
// FileDescription is closed. Note that returning a non-nil error does not
|
||||
// prevent the file descriptor from being closed.
|
||||
OnClose() error
|
||||
OnClose(ctx context.Context) error
|
||||
|
||||
// StatusFlags returns file description status flags, as for
|
||||
// fcntl(F_GETFL).
|
||||
@@ -180,7 +180,7 @@ type FileDescriptionImpl interface {
|
||||
// ConfigureMMap mutates opts to implement mmap(2) for the file. Most
|
||||
// implementations that support memory mapping can call
|
||||
// GenericConfigureMMap with the appropriate memmap.Mappable.
|
||||
ConfigureMMap(ctx context.Context, opts memmap.MMapOpts) error
|
||||
ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error
|
||||
|
||||
// Ioctl implements the ioctl(2) syscall.
|
||||
Ioctl(ctx context.Context, uio usermem.IO, args arch.SyscallArguments) (uintptr, error)
|
||||
|
||||
@@ -45,7 +45,7 @@ type FileDescriptionDefaultImpl struct{}
|
||||
|
||||
// OnClose implements FileDescriptionImpl.OnClose analogously to
|
||||
// file_operations::flush == NULL in Linux.
|
||||
func (FileDescriptionDefaultImpl) OnClose() error {
|
||||
func (FileDescriptionDefaultImpl) OnClose(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ func (FileDescriptionDefaultImpl) Sync(ctx context.Context) error {
|
||||
|
||||
// ConfigureMMap implements FileDescriptionImpl.ConfigureMMap analogously to
|
||||
// file_operations::mmap == NULL in Linux.
|
||||
func (FileDescriptionDefaultImpl) ConfigureMMap(ctx context.Context, opts memmap.MMapOpts) error {
|
||||
func (FileDescriptionDefaultImpl) ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error {
|
||||
return syserror.ENODEV
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user