@cryptotaxi247 / kubo / commits / 953b61047

add node to dagserv under lock

Otherwise, we could run a GC between adding and pinning. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Dec 3, 2017 at 18:53 UTC 953b610470044bd332522b346e4881b8957c2050
1 file changed +4 -1
pin/pin.go
+4 -1
@@ -172,7 +172,10 @@ func NewPinner(dstore ds.Datastore, serv, internal mdag.DAGService) Pinner {
172 func (p *pinner) Pin(ctx context.Context, node node.Node, recurse bool) error {
173 p.lock.Lock()
174 defer p.lock.Unlock()
175 - c := node.Cid()
175 + c, err := p.dserv.Add(node)
176 + if err != nil {
177 + return err
178 + }
179
180 if recurse {
181 if p.recursePin.Has(c) {