1 b1b8898e 2017-06-21 progrium package ufs
7 b1b8898e 2017-06-21 progrium p9p "github.com/docker/go-p9p"
10 b1b8898e 2017-06-21 progrium type FileRef struct {
11 b1b8898e 2017-06-21 progrium sync.Mutex
12 b1b8898e 2017-06-21 progrium Path string
13 b1b8898e 2017-06-21 progrium Info p9p.Dir
14 b1b8898e 2017-06-21 progrium File *os.File
15 b1b8898e 2017-06-21 progrium Readdir *p9p.Readdir
18 b1b8898e 2017-06-21 progrium func (f *FileRef) Stat() error {
19 b1b8898e 2017-06-21 progrium f.Lock()
20 b1b8898e 2017-06-21 progrium defer f.Unlock()
21 84f0f75d 2017-06-21 progrium return f.statLocked()
24 84f0f75d 2017-06-21 progrium func (f *FileRef) statLocked() error {
25 b1b8898e 2017-06-21 progrium info, err := os.Lstat(f.Path)
26 b1b8898e 2017-06-21 progrium if err != nil {
27 b1b8898e 2017-06-21 progrium return err
30 b1b8898e 2017-06-21 progrium f.Info = dirFromInfo(info)
31 b1b8898e 2017-06-21 progrium return nil
34 b1b8898e 2017-06-21 progrium func (f *FileRef) IsDir() bool {
35 b1b8898e 2017-06-21 progrium return f.Info.Mode&p9p.DMDIR > 0