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) {