func (f *AzukiFile) GetAttr(a *fuse.Attr) fuse.Status { st := syscall.Stat_t{} f.lock.Lock() err := syscall.Fstat(int(f.File.Fd()), &st) f.lock.Unlock() if err != nil { return fuse.ToStatus(err) } a.FromStat(&st) return fuse.OK }
func (f *file) GetAttr(a *fuse.Attr) fuse.Status { cryptfs.Debug.Printf("file.GetAttr()\n") st := syscall.Stat_t{} f.lock.Lock() err := syscall.Fstat(int(f.fd.Fd()), &st) f.lock.Unlock() if err != nil { return fuse.ToStatus(err) } a.FromStat(&st) a.Size = f.cfs.PlainSize(a.Size) return fuse.OK }
// GetAttr - FUSE call func (f *virtualFile) GetAttr(a *fuse.Attr) fuse.Status { var st syscall.Stat_t err := syscall.Lstat(f.parentFile, &st) if err != nil { fmt.Printf("Lstat %q: %v\n", f.parentFile, err) return fuse.ToStatus(err) } st.Ino = f.ino st.Size = int64(len(f.content)) st.Mode = syscall.S_IFREG | 0400 st.Nlink = 1 a.FromStat(&st) return fuse.OK }
func (o *ObjectFile) GetAttr(a *fuse.Attr) fuse.Status { log.Debugf("[objectfile] GetAttr(obj) %s", o.name) stat, err := o.localfile.Stat() if err != nil { return fuse.EIO } st, ok := stat.Sys().(*syscall.Stat_t) if !ok { return fuse.ENODEV } a.FromStat(st) return fuse.OK }
func (f *file) GetAttr(a *fuse.Attr) fuse.Status { f.fdLock.RLock() defer f.fdLock.RUnlock() tlog.Debug.Printf("file.GetAttr()") st := syscall.Stat_t{} err := syscall.Fstat(int(f.fd.Fd()), &st) if err != nil { return fuse.ToStatus(err) } a.FromStat(&st) a.Size = f.contentEnc.CipherSizeToPlainSize(a.Size) return fuse.OK }