From: Matt Joiner <anacrolix@gmail.com>
Date: Mon, 22 Feb 2021 03:51:34 +0000 (+1100)
Subject: Only write update bolt piece completion if the existing value differs
X-Git-Tag: v1.26.0-alpha~6
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ac05b69e1184d27b32b436c16d515f16bdd27290;p=btrtrc.git

Only write update bolt piece completion if the existing value differs
---

diff --git a/storage/boltPieceCompletion.go b/storage/boltPieceCompletion.go
index 36fc6c1f..4bc190a2 100644
--- a/storage/boltPieceCompletion.go
+++ b/storage/boltPieceCompletion.go
@@ -67,6 +67,9 @@ func (me boltPieceCompletion) Get(pk metainfo.PieceKey) (cn Completion, err erro
 }
 
 func (me boltPieceCompletion) Set(pk metainfo.PieceKey, b bool) error {
+	if c, err := me.Get(pk); err == nil && c.Ok && c.Complete == b {
+		return nil
+	}
 	return me.db.Update(func(tx *bbolt.Tx) error {
 		c, err := tx.CreateBucketIfNotExists(completionBucketKey)
 		if err != nil {