From 1f25697cfe0484198784afc947ae3bdf4eb05e9b Mon Sep 17 00:00:00 2001 From: Dean Deng Date: Fri, 30 Oct 2020 17:40:28 -0700 Subject: Fix rename error handling for VFS2 kernfs. The non-errno error was causing panics before. PiperOrigin-RevId: 339969348 --- pkg/sentry/fsimpl/kernfs/inode_impl_util.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/pkg/sentry/fsimpl/kernfs/inode_impl_util.go b/pkg/sentry/fsimpl/kernfs/inode_impl_util.go index d9d76758a..4f78437d2 100644 --- a/pkg/sentry/fsimpl/kernfs/inode_impl_util.go +++ b/pkg/sentry/fsimpl/kernfs/inode_impl_util.go @@ -568,13 +568,6 @@ func (o *OrderedChildren) RmDir(ctx context.Context, name string, child Inode) e return o.Unlink(ctx, name, child) } -// +stateify savable -type renameAcrossDifferentImplementationsError struct{} - -func (renameAcrossDifferentImplementationsError) Error() string { - return "rename across inodes with different implementations" -} - // Rename implements Inode.Rename. // // Precondition: Rename may only be called across two directory inodes with @@ -587,7 +580,7 @@ func (renameAcrossDifferentImplementationsError) Error() string { func (o *OrderedChildren) Rename(ctx context.Context, oldname, newname string, child, dstDir Inode) error { dst, ok := dstDir.(interface{}).(*OrderedChildren) if !ok { - return renameAcrossDifferentImplementationsError{} + return syserror.ENODEV } if !o.writable || !dst.writable { return syserror.EPERM -- cgit v1.2.3