return nil, fuse.ENOENT } func (benchDir) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error) { l := []fuse.Dirent{ {Inode: 2, Name: "bench", Type: fuse.DT_File}, } return l, nil } type benchFile struct { conf *benchConfig } var _ = fs.Node(benchFile{}) var _ = fs.NodeOpener(benchFile{}) var _ = fs.NodeFsyncer(benchFile{}) var _ = fs.Handle(benchFile{}) var _ = fs.HandleReader(benchFile{}) var _ = fs.HandleWriter(benchFile{}) func (benchFile) Attr() fuse.Attr { return fuse.Attr{Inode: 2, Mode: 0644, Size: 9999999999999999} } func (f benchFile) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, intr fs.Intr) (fs.Handle, fuse.Error) { if f.conf.directIO { resp.Flags |= fuse.OpenDirectIO } // TODO configurable? resp.Flags |= fuse.OpenKeepCache
// RecordedMknod returns information about the Mknod request. // If no request was seen, returns a zero value. func (r *Mknods) RecordedMknod() fuse.MknodRequest { val := r.rec.Recorded() if val == nil { return fuse.MknodRequest{} } return *(val.(*fuse.MknodRequest)) } // Opens records a Open request and its fields. type Opens struct { rec RequestRecorder } var _ = fs.NodeOpener(&Opens{}) // Open records the request and returns an error. Most callers should // wrap this call in a function that returns a more useful result. func (r *Opens) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, intr fs.Intr) (fs.Handle, fuse.Error) { tmp := *req r.rec.RecordRequest(&tmp) return nil, fuse.EIO } // RecordedOpen returns information about the Open request. // If no request was seen, returns a zero value. func (r *Opens) RecordedOpen() fuse.OpenRequest { val := r.rec.Recorded() if val == nil { return fuse.OpenRequest{}