aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer2/filechunks.go23
-rw-r--r--weed/filer2/filer_structure.go1
-rw-r--r--weed/filer2/memdb/memdb_store.go2
3 files changed, 25 insertions, 1 deletions
diff --git a/weed/filer2/filechunks.go b/weed/filer2/filechunks.go
new file mode 100644
index 000000000..b2f05de3a
--- /dev/null
+++ b/weed/filer2/filechunks.go
@@ -0,0 +1,23 @@
+package filer2
+
+type Chunks []FileChunk
+
+func (chunks Chunks) TotalSize() (size uint64) {
+ for _, c := range chunks {
+ t := uint64(c.Offset + int64(c.Size))
+ if size < t {
+ size = t
+ }
+ }
+ return
+}
+
+func (chunks Chunks) Len() int {
+ return len(chunks)
+}
+func (chunks Chunks) Swap(i, j int) {
+ chunks[i], chunks[j] = chunks[j], chunks[i]
+}
+func (chunks Chunks) Less(i, j int) bool {
+ return chunks[i].Offset < chunks[j].Offset
+}
diff --git a/weed/filer2/filer_structure.go b/weed/filer2/filer_structure.go
index c78704184..c6a3f817d 100644
--- a/weed/filer2/filer_structure.go
+++ b/weed/filer2/filer_structure.go
@@ -27,7 +27,6 @@ type Attr struct {
Mode os.FileMode // file mode
Uid uint32 // owner uid
Gid uint32 // group gid
- Size uint64 // total size in bytes
}
type Entry struct {
diff --git a/weed/filer2/memdb/memdb_store.go b/weed/filer2/memdb/memdb_store.go
index 5a72b7cf9..47e9934aa 100644
--- a/weed/filer2/memdb/memdb_store.go
+++ b/weed/filer2/memdb/memdb_store.go
@@ -5,6 +5,7 @@ import (
"github.com/google/btree"
"strings"
"fmt"
+ "time"
)
type MemDbStore struct {
@@ -37,6 +38,7 @@ func (filer *MemDbStore) AppendFileChunk(fullpath filer2.FullPath, fileChunk fil
return fmt.Errorf("No such file: %s", fullpath)
}
entry.Chunks = append(entry.Chunks, fileChunk)
+ entry.Mtime = time.Now()
return nil
}