func (u *VuFs) Open(req *srv.Req) { fid := req.Fid.Aux.(*Fid) tc := req.Tc // Ensure open permission. st, err := os.Stat(fid.path) if err != nil { req.RespondError(srv.Enoent) return } f, err := dir2Dir(fid.path, st, req.Conn.Srv.Upool) if err != nil { req.RespondError(toError(err)) return } if !CheckPerm(f, req.Fid.User, mode2Perm(tc.Mode)) { req.RespondError(srv.Eperm) return } var e error fid.file, e = os.OpenFile(fid.path, omode2uflags(tc.Mode), 0) if e != nil { req.RespondError(toError(e)) return } req.RespondRopen(dir2Qid(st), 0) }
func (*Ufs) Open(req *srv.Req) { fid := req.Fid.Aux.(*Fid) tc := req.Tc err := fid.stat() if err != nil { req.RespondError(err) return } var e error fid.file, e = os.OpenFile(fid.path, omode2uflags(tc.Mode), 0) if e != nil { req.RespondError(toError(e)) return } req.RespondRopen(dir2Qid(fid.st), 0) }