From e0e640981282ece051c33700f4e272047fa4e5b6 Mon Sep 17 00:00:00 2001 From: Nicolas Lacasse Date: Fri, 22 Jun 2018 14:09:34 -0700 Subject: [PATCH] Simplify some handle logic. PiperOrigin-RevId: 201738936 Change-Id: Ib75136415e28e8df0c742acd6b9512d4809fe3a8 --- pkg/sentry/fs/gofer/handles.go | 45 ++++++++++++---------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/pkg/sentry/fs/gofer/handles.go b/pkg/sentry/fs/gofer/handles.go index a660c9230..a3e52aad6 100644 --- a/pkg/sentry/fs/gofer/handles.go +++ b/pkg/sentry/fs/gofer/handles.go @@ -62,43 +62,28 @@ func newHandles(ctx context.Context, file contextFile, flags fs.FileFlags) (*han return nil, err } + var p9flags p9.OpenFlags switch { case flags.Read && flags.Write: - hostFile, _, _, err := newFile.open(ctx, p9.ReadWrite) - if err != nil { - newFile.close(ctx) - return nil, err - } - h := &handles{ - File: newFile, - Host: hostFile, - } - return h, nil + p9flags = p9.ReadWrite case flags.Read && !flags.Write: - hostFile, _, _, err := newFile.open(ctx, p9.ReadOnly) - if err != nil { - newFile.close(ctx) - return nil, err - } - h := &handles{ - File: newFile, - Host: hostFile, - } - return h, nil + p9flags = p9.ReadOnly case !flags.Read && flags.Write: - hostFile, _, _, err := newFile.open(ctx, p9.WriteOnly) - if err != nil { - newFile.close(ctx) - return nil, err - } - h := &handles{ - File: newFile, - Host: hostFile, - } - return h, nil + p9flags = p9.WriteOnly default: panic("impossible fs.FileFlags") } + + hostFile, _, _, err := newFile.open(ctx, p9flags) + if err != nil { + newFile.close(ctx) + return nil, err + } + h := &handles{ + File: newFile, + Host: hostFile, + } + return h, nil } type handleReadWriter struct {