Simplify some handle logic.

PiperOrigin-RevId: 201738936
Change-Id: Ib75136415e28e8df0c742acd6b9512d4809fe3a8
This commit is contained in:
Nicolas Lacasse 2018-06-22 14:09:34 -07:00 committed by Shentubot
parent fe3fc44da3
commit e0e6409812
1 changed files with 15 additions and 30 deletions

View File

@ -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 {