diff --git a/examplelib/misc.go b/examplelib/misc.go
index 2ef9f3b791f805cb8e3879b81a71d494b6cd1e24..7b13645eb68d004674f130d2d16599fa3b825350 100644
--- a/examplelib/misc.go
+++ b/examplelib/misc.go
@@ -1,6 +1,9 @@
 package examplelib
 
-import "os"
+import (
+	"fmt"
+	"os"
+)
 
 ////////////////
 
@@ -18,3 +21,10 @@ func FileExists(name string) bool {
 	_, err := os.Lstat(name)
 	return err == nil
 }
+
+func CheckSuccess(e os.Error) {
+	if e != nil {
+		panic(fmt.Sprintf("Unexpected error: %v", e))
+	}
+}
+
diff --git a/examplelib/passthrough_test.go b/examplelib/passthrough_test.go
index 6ff7da9c6fb6f2e4629352c0e2fb788a86024a70..c6b2f45a486d53c2e54c3f6b10163db448ba0e1b 100644
--- a/examplelib/passthrough_test.go
+++ b/examplelib/passthrough_test.go
@@ -73,9 +73,7 @@ func (me *testCase) Setup(t *testing.T) {
 func (me *testCase) Cleanup() {
 	fmt.Println("Unmounting.")
 	err := me.state.Unmount()
-	if err != nil {
-		me.tester.Errorf("Can't unmount a dir, err: %v", err)
-	}
+	CheckSuccess(err)
 	os.Remove(me.mountPoint)
 	os.RemoveAll(me.origDir)
 }
@@ -85,17 +83,13 @@ func (me *testCase) Cleanup() {
 
 func (me *testCase) makeOrigSubdir() {
 	err := os.Mkdir(me.origSubdir, 0777)
-	if err != nil {
-		me.tester.Errorf("orig mkdir subdir %v", err)
-	}
+	CheckSuccess(err)
 }
 
 
 func (me *testCase) removeMountSubdir() {
 	err := os.RemoveAll(me.mountSubdir)
-	if err != nil {
-		me.tester.Errorf("orig rmdir subdir %v", err)
-	}
+	CheckSuccess(err)
 }
 
 func (me *testCase) removeMountFile() {
@@ -105,13 +99,9 @@ func (me *testCase) removeMountFile() {
 
 func (me *testCase) writeOrigFile() {
 	f, err := os.Open(me.origFile, os.O_WRONLY|os.O_CREAT, 0700)
-	if err != nil {
-		me.tester.Errorf("Error orig open: %v", err)
-	}
+	CheckSuccess(err)
 	_, err = f.Write([]byte(contents))
-	if err != nil {
-		me.tester.Errorf("Write %v", err)
-	}
+	CheckSuccess(err)
 	f.Close()
 }
 
@@ -130,15 +120,11 @@ func (me *testCase) testReadThroughFuse() {
 
 	fmt.Println("Testing chmod.")
 	err := os.Chmod(me.mountFile, mode)
-	if err != nil {
-		me.tester.Errorf("Chmod %v", err)
-	}
+	CheckSuccess(err)
 
 	fmt.Println("Testing Lstat.")
 	fi, err := os.Lstat(me.mountFile)
-	if err != nil {
-		me.tester.Errorf("Lstat %v", err)
-	}
+	CheckSuccess(err)
 	if (fi.Mode & 0777) != mode {
 		me.tester.Errorf("Wrong mode %o != %o", fi.Mode, mode)
 	}
@@ -146,9 +132,7 @@ func (me *testCase) testReadThroughFuse() {
 	// Open (for read), read.
 	fmt.Println("Testing open.")
 	f, err := os.Open(me.mountFile, os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("Fuse open %v", err)
-	}
+	CheckSuccess(err)
 
 	fmt.Println("Testing read.")
 	var buf [1024]byte
@@ -169,9 +153,7 @@ func (me *testCase) testRemove() {
 
 	fmt.Println("Testing remove.")
 	err := os.Remove(me.mountFile)
-	if err != nil {
-		me.tester.Errorf("Remove %v", err)
-	}
+	CheckSuccess(err)
 	_, err = os.Lstat(me.origFile)
 	if err == nil {
 		me.tester.Errorf("Lstat() after delete should have generated error.")
@@ -182,15 +164,11 @@ func (me *testCase) testWriteThroughFuse() {
 	// Create (for write), write.
 	me.tester.Log("Testing create.")
 	f, err := os.Open(me.mountFile, os.O_WRONLY|os.O_CREATE, 0644)
-	if err != nil {
-		me.tester.Errorf("Fuse create/open %v", err)
-	}
+	CheckSuccess(err)
 
 	me.tester.Log("Testing write.")
 	n, err := f.WriteString(contents)
-	if err != nil {
-		me.tester.Errorf("fuse write %v", err)
-	}
+	CheckSuccess(err)
 	if n != len(contents) {
 		me.tester.Errorf("Write mismatch: %v of %v", n, len(contents))
 	}
@@ -201,15 +179,11 @@ func (me *testCase) testWriteThroughFuse() {
 	}
 
 	f, err = os.Open(me.origFile, os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("orig open %v", err)
-	}
+	CheckSuccess(err)
 	var buf [1024]byte
 	slice := buf[:]
 	n, err = f.Read(slice)
-	if err != nil {
-		me.tester.Errorf("orig read %v", err)
-	}
+	CheckSuccess(err)
 	me.tester.Log("Orig contents", slice[:n])
 	if string(slice[:n]) != contents {
 		me.tester.Errorf("write contents error %v", slice[:n])
@@ -221,33 +195,26 @@ func (me *testCase) testWriteThroughFuse() {
 func (me *testCase) testMkdirRmdir() {
 	// Mkdir/Rmdir.
 	err := os.Mkdir(me.mountSubdir, 0777)
-	if err != nil {
-		me.tester.Errorf("mount mkdir", err)
-	}
+	CheckSuccess(err)
 	fi, err := os.Lstat(me.origSubdir)
 	if !fi.IsDirectory() {
 		me.tester.Errorf("Not a directory: %o", fi.Mode)
 	}
 
 	err = os.Remove(me.mountSubdir)
-	if err != nil {
-		me.tester.Errorf("rmdir %v", err)
-	}
+	CheckSuccess(err)
+	CheckSuccess(err)
 }
 
 func (me *testCase) testLink() {
 	me.tester.Log("Testing hard links.")
 	me.writeOrigFile()
 	err := os.Mkdir(me.origSubdir, 0777)
-	if err != nil {
-		me.tester.Errorf("mount mkdir", err)
-	}
+	CheckSuccess(err)
 
 	// Link.
 	err = os.Link(me.mountFile, me.mountSubfile)
-	if err != nil {
-		me.tester.Errorf("mount link %v", err)
-	}
+	CheckSuccess(err)
 
 	fi, err := os.Lstat(me.mountFile)
 	if fi.Nlink != 2 {
@@ -279,16 +246,11 @@ func (me *testCase) testSymlink() {
 	defer os.Remove(path.Join(me.mountPoint, linkFile))
 	defer me.removeMountFile()
 
-	if err != nil {
-		me.tester.Errorf("symlink %v", err)
-	}
+	CheckSuccess(err)
 
 	origLink := path.Join(me.origDir, linkFile)
 	fi, err := os.Lstat(origLink)
-	if err != nil {
-		me.tester.Errorf("link lstat %v", err)
-		return
-	}
+	CheckSuccess(err)
 
 	if !fi.IsSymlink() {
 		me.tester.Errorf("not a symlink: %o", fi.Mode)
@@ -296,10 +258,7 @@ func (me *testCase) testSymlink() {
 	}
 
 	read, err := os.Readlink(path.Join(me.mountPoint, linkFile))
-	if err != nil {
-		me.tester.Errorf("orig readlink %v", err)
-		return
-	}
+	CheckSuccess(err)
 
 	if read != orig {
 		me.tester.Errorf("unexpected symlink value '%v'", read)
@@ -312,9 +271,7 @@ func (me *testCase) testRename() {
 	me.makeOrigSubdir()
 
 	err := os.Rename(me.mountFile, me.mountSubfile)
-	if err != nil {
-		me.tester.Errorf("rename %v", err)
-	}
+	CheckSuccess(err)
 	if FileExists(me.origFile) {
 		me.tester.Errorf("original %v still exists.", me.origFile)
 	}
@@ -329,10 +286,7 @@ func (me *testCase) testRename() {
 func (me *testCase) testAccess() {
 	me.writeOrigFile()
 	err := os.Chmod(me.origFile, 0)
-	if err != nil {
-		me.tester.Errorf("chmod %v", err)
-	}
-
+	CheckSuccess(err)
 	// Ugh - copied from unistd.h
 	const W_OK uint32 = 2
 
@@ -341,10 +295,7 @@ func (me *testCase) testAccess() {
 		me.tester.Errorf("Expected EACCES for non-writable, %v %v", errCode, syscall.EACCES)
 	}
 	err = os.Chmod(me.origFile, 0222)
-	if err != nil {
-		me.tester.Errorf("chmod %v", err)
-	}
-
+	CheckSuccess(err)
 	errCode = syscall.Access(me.mountFile, W_OK)
 	if errCode != 0 {
 		me.tester.Errorf("Expected no error code for writable. %v", errCode)
@@ -373,14 +324,9 @@ func (me *testCase) testReaddir() {
 	me.makeOrigSubdir()
 
 	dir, err := os.Open(me.mountPoint, os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("opendir err %v", err)
-		return
-	}
+	CheckSuccess(err)
 	infos, err := dir.Readdir(10)
-	if err != nil {
-		me.tester.Errorf("readdir err %v", err)
-	}
+	CheckSuccess(err)
 
 	wanted := map[string]bool{
 		"hello.txt": true,
@@ -409,9 +355,7 @@ func (me *testCase) testFSync() {
 
 	f, err := os.Open(me.mountFile, os.O_WRONLY, 0)
 	_, err = f.WriteString("hello there")
-	if err != nil {
-		me.tester.Errorf("writestring %v", err)
-	}
+	CheckSuccess(err)
 
 	// How to really test fsync ?
 	errNo := syscall.Fsync(f.Fd())
@@ -425,9 +369,7 @@ func (me *testCase) testLargeRead() {
 	me.tester.Log("Testing large read.")
 	name := path.Join(me.origDir, "large")
 	f, err := os.Open(name, os.O_WRONLY|os.O_CREATE, 0777)
-	if err != nil {
-		me.tester.Errorf("open write err %v", err)
-	}
+	CheckSuccess(err)
 
 	b := bytes.NewBuffer(nil)
 
@@ -438,20 +380,14 @@ func (me *testCase) testLargeRead() {
 
 	slice := b.Bytes()
 	n, err := f.Write(slice)
-	if err != nil {
-		me.tester.Errorf("write err %v %v", err, n)
-	}
+	CheckSuccess(err)
 
 	err = f.Close()
-	if err != nil {
-		me.tester.Errorf("close err %v", err)
-	}
+	CheckSuccess(err)
 
 	// Read in one go.
 	g, err := os.Open(path.Join(me.mountPoint, "large"), os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("open err %v", err)
-	}
+	CheckSuccess(err)
 	readSlice := make([]byte, len(slice))
 	m, err := g.Read(readSlice)
 	if m != n {
@@ -464,16 +400,12 @@ func (me *testCase) testLargeRead() {
 		}
 	}
 
-	if err != nil {
-		me.tester.Errorf("read mismatch %v", err)
-	}
+	CheckSuccess(err)
 	g.Close()
 
 	// Read in chunks
 	g, err = os.Open(path.Join(me.mountPoint, "large"), os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("open err %v", err)
-	}
+	CheckSuccess(err)
 	readSlice = make([]byte, 4096)
 	total := 0
 	for {
@@ -481,10 +413,7 @@ func (me *testCase) testLargeRead() {
 		if m == 0 && err == os.EOF {
 			break
 		}
-		if err != nil {
-			me.tester.Errorf("read err %v %v", err, m)
-			break
-		}
+		CheckSuccess(err)
 		total += m
 	}
 	if total != len(slice) {
@@ -528,10 +457,7 @@ func (me *testCase) testLargeDirRead() {
 		nameSet[base] = true
 
 		f, err := os.Open(name, os.O_WRONLY|os.O_CREATE, 0777)
-		if err != nil {
-			me.tester.Errorf("open write err %v", err)
-			break
-		}
+		CheckSuccess(err)
 		f.WriteString("bla")
 		f.Close()
 
@@ -539,17 +465,13 @@ func (me *testCase) testLargeDirRead() {
 	}
 
 	dir, err := os.Open(path.Join(me.mountPoint, "readdirSubdir"), os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("dirread %v", err)
-	}
+	CheckSuccess(err)
 	// Chunked read.
 	total := 0
 	readSet := make(map[string]bool)
 	for {
 		namesRead, err := dir.Readdirnames(200)
-		if err != nil {
-			me.tester.Errorf("readdir err %v %v", err, namesRead)
-		}
+		CheckSuccess(err)
 
 		if len(namesRead) == 0 {
 			break
@@ -604,9 +526,7 @@ func TestRecursiveMount(t *testing.T) {
 	f, err := os.Open(path.Join(ts.mountPoint, "hello.txt"),
 		os.O_WRONLY|os.O_CREATE, 0777)
 
-	if err != nil {
-		t.Errorf("open write err %v", err)
-	}
+	CheckSuccess(err)
 	f.WriteString("bla")
 	f.Close()
 
@@ -618,28 +538,19 @@ func TestRecursiveMount(t *testing.T) {
 
 	submnt := path.Join(ts.mountPoint, "mnt")
 	err = os.Mkdir(submnt, 0777)
-	if err != nil {
-		t.Errorf("mkdir")
-	}
-
+	CheckSuccess(err)
 	code = ts.connector.Mount("/mnt", pfs2)
 	if code != fuse.OK {
 		t.Errorf("mkdir")
 	}
 
 	_, err = os.Lstat(submnt)
-	if err != nil {
-		t.Error("lstat submount", err)
-	}
+	CheckSuccess(err)
 	_, err = os.Lstat(path.Join(submnt, "hello.txt"))
-	if err != nil {
-		t.Error("lstat submount/file", err)
-	}
+	CheckSuccess(err)
 
 	f, err = os.Open(path.Join(submnt, "hello.txt"), os.O_RDONLY, 0)
-	if err != nil {
-		t.Error("open submount/file", err)
-	}
+	CheckSuccess(err)
 	code = ts.connector.Unmount("/mnt")
 	if code != fuse.EBUSY {
 		t.Error("expect EBUSY")
diff --git a/examplelib/stackfs_test.go b/examplelib/stackfs_test.go
index 3a0f1753619db72d8fe96eb1feb737945cbb99ad..65153c48194b46ed4afcdcd7564ab99f1bddc9d6 100644
--- a/examplelib/stackfs_test.go
+++ b/examplelib/stackfs_test.go
@@ -68,9 +68,7 @@ func (me *stackFsTestCase) Setup(t *testing.T) {
 func (me *stackFsTestCase) Cleanup() {
 	fmt.Println("Unmounting.")
 	err := me.state.Unmount()
-	if err != nil {
-		me.tester.Errorf("Can't unmount a dir, err: %v", err)
-	}
+	CheckSuccess(err)
 	os.RemoveAll(me.testDir)
 }
 
@@ -79,14 +77,9 @@ func (me *stackFsTestCase) Cleanup() {
 func (me *stackFsTestCase) testReaddir() {
 	fmt.Println("testReaddir... ")
 	dir, err := os.Open(me.mountDir, os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("opendir err %v", err)
-		return
-	}
+	CheckSuccess(err)
 	infos, err := dir.Readdir(10)
-	if err != nil {
-		me.tester.Errorf("readdir err %v", err)
-	}
+	CheckSuccess(err)
 
 	wanted := map[string]bool{
 		"sub1": true,
@@ -128,41 +121,30 @@ func (me *stackFsTestCase) testSubFs() {
 		}
 		content1 := "booh!"
 		f, err = os.Open(mountFile, os.O_WRONLY|os.O_CREATE, magicMode)
-		if err != nil {
-			me.tester.Errorf("Create %v", err)
-		}
+		CheckSuccess(err)
 
 		f.Write([]byte(content1))
 		f.Close()
 
 		err = os.Chmod(mountFile, magicMode)
-		if err != nil {
-			me.tester.Errorf("chmod %v", err)
-		}
+		CheckSuccess(err)
 
 		fi, err := os.Lstat(mountFile)
-		if err != nil {
-			me.tester.Errorf("Lstat %v", err)
-		} else {
-			if fi.Mode&0777 != magicMode {
-				me.tester.Errorf("Mode %o", fi.Mode)
-			}
+		CheckSuccess(err) 
+		if fi.Mode&0777 != magicMode {
+			me.tester.Errorf("Mode %o", fi.Mode)
 		}
 
 		g, err := os.Open(mountFile, os.O_RDONLY, 0)
-		if err != nil {
-			me.tester.Errorf("Open %v", err)
-		} else {
-			buf := make([]byte, 1024)
-			n, err := g.Read(buf)
-			if err != nil {
-				me.tester.Errorf("read err %v", err)
-			}
-			if string(buf[:n]) != content1 {
-				me.tester.Errorf("content %v", buf[:n])
-			}
-			g.Close()
+		CheckSuccess(err)
+
+		buf := make([]byte, 1024)
+		n, err := g.Read(buf)
+		CheckSuccess(err)
+		if string(buf[:n]) != content1 {
+			me.tester.Errorf("content %v", buf[:n])
 		}
+		g.Close()
 	}
 }
 
@@ -185,12 +167,10 @@ func (me *stackFsTestCase) testAddRemove() {
 	conn.Init(new(fuse.InHeader), new(fuse.InitIn))
 
 	fi, err := os.Lstat(path.Join(me.mountDir, "third"))
-	if err != nil {
-		me.tester.Errorf("third lstat err %v", err)
-	} else {
-		if !fi.IsDirectory() {
-			me.tester.Errorf("not a directory %v", fi)
-		}
+	CheckSuccess(err)
+
+	if !fi.IsDirectory() {
+		me.tester.Errorf("not a directory %v", fi)
 	}
 
 	fs := me.fs.RemoveFileSystem("third")
@@ -198,11 +178,9 @@ func (me *stackFsTestCase) testAddRemove() {
 		me.tester.Errorf("remove fail")
 	}
 	dir, err := os.Open(me.mountDir, os.O_RDONLY, 0)
-	if err != nil {
-		me.tester.Errorf("opendir err %v", err)
-		return
-	}
+	CheckSuccess(err)
 	infos, err := dir.Readdir(10)
+	CheckSuccess(err)
 	if len(infos) != 2 {
 		me.tester.Errorf("lstat expect 2 infos %v", infos)
 	}
diff --git a/examplelib/zipfs_test.go b/examplelib/zipfs_test.go
index 2ac058daad5909e651adfca2a68b066a0a1c6402..8a82870b742fa9a10cd2c5aecd937833c939d1ad 100644
--- a/examplelib/zipfs_test.go
+++ b/examplelib/zipfs_test.go
@@ -4,15 +4,8 @@ import (
 	"github.com/hanwen/go-fuse/fuse"
 	"os"
 	"testing"
-	"fmt"
 )
 
-func CheckSuccess(e os.Error) {
-	if e != nil {
-		panic(fmt.Sprintf("Unexpected error: %v", e))
-	}
-}
-
 func TestZipFs(t *testing.T) {
 	wd, err := os.Getwd()
 	CheckSuccess(err)
diff --git a/fuse/pathfilesystem.go b/fuse/pathfilesystem.go
index e3f347c4ce96051e74fe1793238b6b2eda30d373..84ecea2097dfc4aecf4b1cad2cc068d9b00cecad 100644
--- a/fuse/pathfilesystem.go
+++ b/fuse/pathfilesystem.go
@@ -319,7 +319,7 @@ func (me *PathFileSystemConnector) Mount(mountPoint string, fs PathFilesystem) S
 		dirParentNode := me.findInode(dirParent)
 
 		// Make sure we know the mount point.
-		attr, _ := me.internalLookup(dirParentNode.NodeId, base, 0)
+		_, _ = me.internalLookup(dirParentNode.NodeId, base, 0)
 	}
 
 	node = me.findInode(mountPoint)