Merge pull request #93 from moorereason/no-defer-on-err

Immediately check for errors on fs.Open
diff --git a/.travis.yml b/.travis.yml
index b52758e..c24eebf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,8 @@
 

 go:

   - 1.5.4

-  - 1.6.2

+  - 1.6.3

+  - 1.7

   - tip

 

 os:

@@ -13,6 +14,7 @@
 matrix:

   allow_failures:

     - go: tip

+  fast_finish: true

 

 script:

   - go test -v ./...

diff --git a/README.md b/README.md
index da4c956..db20817 100644
--- a/README.md
+++ b/README.md
@@ -201,8 +201,8 @@
 	appFS = afero.NewMemMapFs()
 	// create test files and directories
 	appFS.MkdirAll("src/a", 0755))
-	appFS.WriteFile("src/a/b", []byte("file b"), 0644)
-	appFS.WriteFile("src/c", []byte("file c"), 0644)
+	afero.WriteFile(appFS, "src/a/b", []byte("file b"), 0644)
+	afero.WriteFile(appFS, "src/c", []byte("file c"), 0644)
 	_, err := appFS.Stat("src/c")
 	if os.IsNotExist(err) {
         t.Errorf("file \"%s\" does not exist.\n", name)
diff --git a/mem/file.go b/mem/file.go
index be3673e..9096ff0 100644
--- a/mem/file.go
+++ b/mem/file.go
@@ -107,6 +107,8 @@
 }
 
 func (f *File) Name() string {
+	f.fileData.Lock()
+	defer f.fileData.Unlock()
 	return f.fileData.name
 }
 
diff --git a/memmap.go b/memmap.go
index f577ac8..2e259b8 100644
--- a/memmap.go
+++ b/memmap.go
@@ -66,7 +66,7 @@
 	}
 	parent := m.findParent(f)
 	if parent == nil {
-		log.Fatal("parent of ", f.Name(), " is nil")
+		log.Panic("parent of ", f.Name(), " is nil")
 	}
 	mem.RemoveFromMemDir(parent, f)
 	return nil
diff --git a/util.go b/util.go
index 84030c2..2f44e6a 100644
--- a/util.go
+++ b/util.go
@@ -46,7 +46,7 @@
 		err = fs.MkdirAll(ospath, 0777) // rwx, rw, r
 		if err != nil {
 			if err != os.ErrExist {
-				log.Fatalln(err)
+				log.Panicln(err)
 			}
 		}
 	}