Simplify some handle logic.
PiperOrigin-RevId: 201738936 Change-Id: Ib75136415e28e8df0c742acd6b9512d4809fe3a8
This commit is contained in:
parent
fe3fc44da3
commit
e0e6409812
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue