From f76439120cf845151d280391cb70f691991a2307 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Mon, 30 Mar 2015 16:29:21 +1100 Subject: [PATCH] Check --- samples/forgetfs/forget_fs.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs.go b/samples/forgetfs/forget_fs.go index 582a115..eb23dd2 100644 --- a/samples/forgetfs/forget_fs.go +++ b/samples/forgetfs/forget_fs.go @@ -15,6 +15,8 @@ package forgetfs import ( + "fmt" + "github.com/jacobsa/fuse" "github.com/jacobsa/fuse/fuseops" "github.com/jacobsa/fuse/fuseutil" @@ -72,7 +74,7 @@ func (fs *ForgetFS) ServeOps(c *fuse.Connection) { // Panic if there are any inodes that have a non-zero reference count. For use // after unmounting. func (fs *ForgetFS) Check() { - panic("TODO") + fs.impl.Check() } //////////////////////////////////////////////////////////////////////// @@ -132,6 +134,18 @@ func (fs *fsImpl) checkInvariants() { } } +// LOCKS_EXCLUDED(fs.mu) +func (fs *fsImpl) Check() { + fs.mu.Lock() + defer fs.mu.Unlock() + + for k, v := range fs.inodes { + if v.lookupCount != 0 { + panic(fmt.Sprintf("Inode %v has lookup count %v", k, v.lookupCount)) + } + } +} + func (fs *fsImpl) Init( op *fuseops.InitOp) { var err error