diff --git a/pin.go b/pin.go index 7a3cabdf07966d2d087dfdf79f1492503939f279..aa74c51854509cba3f63f732e72194d81e19b158 100644 --- a/pin.go +++ b/pin.go @@ -526,7 +526,11 @@ func (p *pinner) Update(ctx context.Context, from, to cid.Cid, unpin bool) error return fmt.Errorf("'from' cid was not recursively pinned already") } + // Temporarily unlock while we fetch the differences. + p.lock.Unlock() err := dagutils.DiffEnumerate(ctx, p.dserv, from, to) + p.lock.Lock() + if err != nil { return err }