Merge pull request #110 from SonOfBytes/memfs-perm-fix

Set perm in MemMapFS after OpenFile, MkDir and MkDirAll methods called
diff --git a/afero_test.go b/afero_test.go
index fee91f9..526afa9 100644
--- a/afero_test.go
+++ b/afero_test.go
@@ -20,7 +20,6 @@
 	"io"
 	"io/ioutil"
 	"os"
-	"path"
 	"path/filepath"
 	"runtime"
 	"strings"
@@ -300,7 +299,6 @@
 func TestTruncate(t *testing.T) {
 	defer removeAllTestFiles(t)
 	for _, fs := range Fss {
-		// f := newFile("TestTruncate", fs, t)
 		f := tmpFile(fs)
 		defer f.Close()
 
@@ -381,7 +379,6 @@
 func TestWriteAt(t *testing.T) {
 	defer removeAllTestFiles(t)
 	for _, fs := range Fss {
-		// f := newFile("TestWriteAt", fs, t)
 		f := tmpFile(fs)
 		defer f.Close()
 
@@ -681,39 +678,6 @@
 	testRegistry = make(map[Fs][]string)
 }
 
-func newFile(testName string, fs Fs, t *testing.T) (f File) {
-	// Use a local file system, not NFS.
-	// On Unix, override $TMPDIR in case the user
-	// has it set to an NFS-mounted directory.
-	dir := ""
-	if runtime.GOOS != "windows" {
-		dir = "/tmp"
-	}
-	fs.MkdirAll(dir, 0777)
-	f, err := fs.Create(path.Join(dir, testName))
-	if err != nil {
-		t.Fatalf("%v: open %s: %s", fs.Name(), testName, err)
-	}
-	return f
-}
-
-func writeFile(t *testing.T, fs Fs, fname string, flag int, text string) string {
-	f, err := fs.OpenFile(fname, flag, 0666)
-	if err != nil {
-		t.Fatalf("Unable to Open file %q for writing: %v", fname, err)
-	}
-	n, err := io.WriteString(f, text)
-	if err != nil {
-		t.Fatalf("WriteString: %d, %v", n, err)
-	}
-	f.Close()
-	data, err := ioutil.ReadFile(fname)
-	if err != nil {
-		t.Fatalf("ReadFile: %v", err)
-	}
-	return string(data)
-}
-
 func equal(name1, name2 string) (r bool) {
 	switch runtime.GOOS {
 	case "windows":
diff --git a/cacheOnReadFs.go b/cacheOnReadFs.go
index d742425..e54a4f8 100644
--- a/cacheOnReadFs.go
+++ b/cacheOnReadFs.go
@@ -32,9 +32,8 @@
 type cacheState int
 
 const (
-	cacheUnknown cacheState = iota
 	// not present in the overlay, unknown if it exists in the base:
-	cacheMiss
+	cacheMiss cacheState = iota
 	// present in the overlay and in base, base file is newer:
 	cacheStale
 	// present in the overlay - with cache time == 0 it may exist in the base,
diff --git a/composite_test.go b/composite_test.go
index 2663574..a8af48f 100644
--- a/composite_test.go
+++ b/composite_test.go
@@ -23,9 +23,9 @@
 
 func CleanupTempDirs(t *testing.T) {
 	osfs := NewOsFs()
-	type ev struct{
+	type ev struct {
 		path string
-		e error
+		e    error
 	}
 
 	errs := []ev{}
@@ -33,7 +33,7 @@
 	for _, x := range tempDirs {
 		err := osfs.RemoveAll(x)
 		if err != nil {
-			errs = append(errs, ev{path:x,e: err})
+			errs = append(errs, ev{path: x, e: err})
 		}
 	}
 
diff --git a/memmap.go b/memmap.go
index a34326b..735bdaf 100644
--- a/memmap.go
+++ b/memmap.go
@@ -35,8 +35,6 @@
 	return &MemMapFs{}
 }
 
-var memfsInit sync.Once
-
 func (m *MemMapFs) getData() map[string]*mem.FileData {
 	m.init.Do(func() {
 		m.data = make(map[string]*mem.FileData)
@@ -348,8 +346,8 @@
 	}
 }
 
-func debugMemMapList(fs Fs) {
-	if x, ok := fs.(*MemMapFs); ok {
-		x.List()
-	}
-}
+// func debugMemMapList(fs Fs) {
+// 	if x, ok := fs.(*MemMapFs); ok {
+// 		x.List()
+// 	}
+// }
diff --git a/sftpfs/file.go b/sftpfs/file.go
index bab4abc..e4ccb55 100644
--- a/sftpfs/file.go
+++ b/sftpfs/file.go
@@ -14,8 +14,8 @@
 package sftpfs
 
 import (
-	"os"
 	"github.com/pkg/sftp"
+	"os"
 )
 
 type File struct {
@@ -64,17 +64,17 @@
 
 // TODO
 func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
-	return 0,nil
+	return 0, nil
 }
 
 // TODO
 func (f *File) Readdir(count int) (res []os.FileInfo, err error) {
-	return nil,nil
+	return nil, nil
 }
 
 // TODO
 func (f *File) Readdirnames(n int) (names []string, err error) {
-	return nil,nil
+	return nil, nil
 }
 
 func (f *File) Seek(offset int64, whence int) (int64, error) {
@@ -87,7 +87,7 @@
 
 // TODO
 func (f *File) WriteAt(b []byte, off int64) (n int, err error) {
-	return 0,nil
+	return 0, nil
 }
 
 func (f *File) WriteString(s string) (ret int, err error) {