From 6d0c2608dc57cf0b4a3c0fc44ba4df20197d3d90 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Wed, 9 Sep 2015 09:52:41 +1000 Subject: [PATCH] memFS.StatFS --- samples/memfs/memfs.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/samples/memfs/memfs.go b/samples/memfs/memfs.go index 4e8c3a5..40642d9 100644 --- a/samples/memfs/memfs.go +++ b/samples/memfs/memfs.go @@ -190,6 +190,28 @@ func (fs *memFS) deallocateInode(id fuseops.InodeID) { // FileSystem methods //////////////////////////////////////////////////////////////////////// +func (fs *memFS) StatFS( + ctx context.Context, + op *fuseops.StatFSOp) (err error) { + fs.mu.Lock() + defer fs.mu.Unlock() + + // Count free/available bytes and inodes. + op.BlockSize = 1 + op.BlocksFree = Capacity_Bytes + op.BlocksAvailable = Capacity_Bytes + op.Inodes = Capacity_Files + op.InodesFree = Capacity_Files + + for _, in := range fs.inodes { + op.InodesFree-- + op.BlocksFree -= in.attrs.Size + op.BlocksAvailable -= in.attrs.Size + } + + return +} + func (fs *memFS) LookUpInode( ctx context.Context, op *fuseops.LookUpInodeOp) (err error) {