// gettattr returns fuse.Attr for the inode described by req.Header.Node func (sc *serveConn) getattr(req *fuse.GetattrRequest) { inode := uint64(req.Header.Node) f, err := sc.db.FileByInode(inode) if err != nil { fuse.Debug(fmt.Sprintf("FileByInode(%v): %v", inode, err)) req.RespondError(fuse.EIO) return } /* TODO: getattr during upload must return current file size sc.Lock() sc.Unlock() */ resp := &fuse.GetattrResponse{} resp.Attr = sc.attrFromFile(*f) fuse.Debug(resp) req.Respond(resp) }