From c04a8580837787fcd7300675e8f81bc08475942a Mon Sep 17 00:00:00 2001
From: Kirill Smelkov <kirr@nexedi.com>
Date: Mon, 22 Apr 2019 15:58:29 +0300
Subject: [PATCH] .

---
 wcfs/wcfs.go            | 1 +
 "wcfs/\316\264btail.go" | 8 ++------
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/wcfs/wcfs.go b/wcfs/wcfs.go
index f8a6151..87cb692 100644
--- a/wcfs/wcfs.go
+++ b/wcfs/wcfs.go
@@ -821,6 +821,7 @@ retry:
 			toinvalidate[file] = finv
 		}
 		// XXX use δfile blocks -> finv.blkmap
+		// TODO invalidate .size only if key >= maxkey was changed
 		finv.size = true
 
 		file.δtail.Append(δF.Rev, δfile.Elements())
diff --git "a/wcfs/\316\264btail.go" "b/wcfs/\316\264btail.go"
index a630178..12f427a 100644
--- "a/wcfs/\316\264btail.go"
+++ "b/wcfs/\316\264btail.go"
@@ -211,7 +211,7 @@ func (δBtail *ΔBtail) Track(path []Node) {	// XXX Tree|Bucket; path[0] = root
 func (δBtail *ΔBtail) Update(δZ *zodb.EventCommit) ΔB {
 	δBtail.δZtail.Append(δZ.Tid, δZ.Changev)
 
-	// {} root -> []oid changed under that root
+	// {} root -> []oid changed under that root in tracked set
 	δZByRoot := map[*Tree][]zodb.Oid{}	// XXX -> map[*Tree]SetOid ?
 	for _, δ := range δZ.Changev {
 		roots, ok := δBtail.trackIdx[δ]
@@ -225,17 +225,13 @@ func (δBtail *ΔBtail) Update(δZ *zodb.EventCommit) ΔB {
 
 	δB := ΔB{Rev: δZ.Tid, Change: make(map[*Tree]map[Key]Value)}
 
-	if len(δZByRoot) == 0 {
-		return δB // tracked set not changed
-	}
-
-	// XXX stub to get file.size invalidation working
 	for root := range δZByRoot {
 		δt, ok := δB.Change[root]
 		if !ok {
 			δt = make(map[Key]Value)
 			δB.Change[root] = δt
 		}
+		// XXX stub to get file.size invalidation working
 		// TODO update δt
 	}
 	return δB
-- 
2.30.9