func (fs FS) Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error { resp.Blocks = 18446744073709551615 resp.Bfree = 18446744073709551615 // Free blocks in file system. resp.Bavail = 18446744073709551615 // Free blocks in file system if you're not root. resp.Files = 0 // Total files in file system. resp.Ffree = 18446744073709551615 // Free files in file system. resp.Bsize = uint32(fs.blockSize) // Block size resp.Namelen = 4294967295 // Maximum file name length? resp.Frsize = 1 // Fragment size, smallest addressable data size in the file system. return nil }
func (fs *CamliFileSystem) Statfs(ctx context.Context, req *fuse.StatfsRequest, res *fuse.StatfsResponse) error { // Make some stuff up, just to see if it makes "lsof" happy. res.Blocks = 1 << 35 res.Bfree = 1 << 34 res.Bavail = 1 << 34 res.Files = 1 << 29 res.Ffree = 1 << 28 res.Namelen = 2048 res.Bsize = 1024 return nil }
// Statfs is called to obtain file system metadata. // It should write that data to resp. func (f *FS) Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error { const blockSize = 4096 const fsBlocks = (1 << 50) / blockSize resp.Blocks = fsBlocks // Total data blocks in file system. resp.Bfree = fsBlocks // Free blocks in file system. resp.Bavail = fsBlocks // Free blocks in file system if you're not root. resp.Files = 1E9 // Total files in file system. resp.Ffree = 1E9 // Free files in file system. resp.Bsize = blockSize // Block size resp.Namelen = 255 // Maximum file name length? resp.Frsize = blockSize // Fragment size, smallest addressable data size in the file system. return nil }
func (fs FS) Statfs(req *fuse.StatfsRequest, res *fuse.StatfsResponse, intr fs.Intr) fuse.Error { // Make some stuff up, just to see if it makes "lsof" happy. res.Blocks = 1 << 35 res.Bfree = 1 << 34 res.Bavail = 1 << 34 res.Files = 1 << 29 res.Ffree = 1 << 28 res.Namelen = 2048 // res.Bsize = 1024 // res.Bsize = 32768 // res.Bsize = 49152 res.Bsize = 4096 * 1024 return nil }
func statfsToFuse(path string, resp *fuse.StatfsResponse) error { var buf syscall.Statfs_t if err := syscall.Statfs(path, &buf); err != nil { return fuse.ENOTSUP } resp.Blocks = uint64(buf.Blocks) // Total data blocks in file system. resp.Bfree = uint64(buf.Bfree) // Free blocks in file system. resp.Bavail = uint64(buf.Bavail) // Free blocks in file system if you're not root. resp.Files = uint64(buf.Files) // Total files in file system. resp.Ffree = uint64(buf.Ffree) // Free files in file system. resp.Bsize = uint32(buf.Bsize) // Block size resp.Namelen = uint32(buf.Namelen) resp.Frsize = uint32(buf.Frsize) return nil }
func (f testStatFS) Statfs(req *fuse.StatfsRequest, resp *fuse.StatfsResponse, int Intr) fuse.Error { resp.Blocks = 42 resp.Namelen = 13 return nil }