From fc7f81f6e7b596ad4f1246a727408f4cbdaa8f88 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 12 May 2018 22:42:28 -0700 Subject: [PATCH] remove nlink property from directory node --- weed/filer2/filer.go | 4 ---- weed/filer2/filer_structure.go | 2 -- weed/filer2/memdb/memdb_store.go | 5 ----- weed/filer2/memdb/memdb_store_test.go | 11 ++++++++++- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/weed/filer2/filer.go b/weed/filer2/filer.go index 848e87b2d..39be69d3a 100644 --- a/weed/filer2/filer.go +++ b/weed/filer2/filer.go @@ -71,7 +71,6 @@ func (f *Filer) CreateEntry(entry *Entry) (error) { Mode: os.ModeDir | 0660, Uid: entry.Uid, Gid: entry.Gid, - Nlink: 2, }, } @@ -102,9 +101,6 @@ func (f *Filer) CreateEntry(entry *Entry) (error) { if err := f.store.InsertEntry(entry); err != nil { return fmt.Errorf("insert entry %s: %v", entry.FullPath, err) } - if err := f.store.AddDirectoryLink(lastDirectoryEntry, 1); err != nil { - return fmt.Errorf("insert entry %s: %v", entry.FullPath, err) - } return nil } diff --git a/weed/filer2/filer_structure.go b/weed/filer2/filer_structure.go index 2aa3d44d2..c78704184 100644 --- a/weed/filer2/filer_structure.go +++ b/weed/filer2/filer_structure.go @@ -28,7 +28,6 @@ type Attr struct { Uid uint32 // owner uid Gid uint32 // group gid Size uint64 // total size in bytes - Nlink uint32 // number of links (usually 1) } type Entry struct { @@ -60,7 +59,6 @@ var ErrNotFound = errors.New("filer: no entry is found in filer store") type FilerStore interface { InsertEntry(*Entry) (error) - AddDirectoryLink(directory *Entry, delta int32) (err error) AppendFileChunk(FullPath, FileChunk) (err error) FindEntry(FullPath) (found bool, entry *Entry, err error) DeleteEntry(FullPath) (fileEntry *Entry, err error) diff --git a/weed/filer2/memdb/memdb_store.go b/weed/filer2/memdb/memdb_store.go index 6925aacfb..5a72b7cf9 100644 --- a/weed/filer2/memdb/memdb_store.go +++ b/weed/filer2/memdb/memdb_store.go @@ -31,11 +31,6 @@ func (filer *MemDbStore) InsertEntry(entry *filer2.Entry) (err error) { return nil } -func (filer *MemDbStore) AddDirectoryLink(directory *filer2.Entry, delta int32) (err error) { - directory.Nlink = uint32(int32(directory.Nlink) + delta) - return nil -} - func (filer *MemDbStore) AppendFileChunk(fullpath filer2.FullPath, fileChunk filer2.FileChunk) (err error) { found, entry, err := filer.FindEntry(fullpath) if !found { diff --git a/weed/filer2/memdb/memdb_store_test.go b/weed/filer2/memdb/memdb_store_test.go index b2587f3e2..9c7810d4d 100644 --- a/weed/filer2/memdb/memdb_store_test.go +++ b/weed/filer2/memdb/memdb_store_test.go @@ -101,8 +101,9 @@ func TestCreateFileAndList(t *testing.T) { return } + file3Path := filer2.FullPath("/home/chris/this/is/file3.jpg") entry3 := &filer2.Entry{ - FullPath: filer2.FullPath("/home/chris/this/is/file3.jpg"), + FullPath: file3Path, Attr: filer2.Attr{ Mode: 0440, Uid: 1234, @@ -118,4 +119,12 @@ func TestCreateFileAndList(t *testing.T) { return } + // delete file and count + filer.DeleteEntry(file3Path) + entries, _ = filer.ListDirectoryEntries(filer2.FullPath("/home/chris/this/is")) + if len(entries) != 1 { + t.Errorf("list entries count: %v", len(entries)) + return + } + }