示例#1
0
// 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)
}