diff --git a/core/coreapi/pin.go b/core/coreapi/pin.go index c99224cb0..ad6dfe922 100644 --- a/core/coreapi/pin.go +++ b/core/coreapi/pin.go @@ -22,13 +22,13 @@ func (api *PinAPI) Add(ctx context.Context, p coreiface.Path, opts ...caopts.Pin return err } - defer api.node.Blockstore.PinLock().Unlock() - rp, err := api.core().ResolvePath(ctx, p) if err != nil { return err } + defer api.node.Blockstore.PinLock().Unlock() + _, err = corerepo.Pin(api.node, api.core(), ctx, []string{rp.Cid().String()}, settings.Recursive) if err != nil { return err @@ -77,6 +77,8 @@ func (api *PinAPI) Update(ctx context.Context, from coreiface.Path, to coreiface return err } + defer api.node.Blockstore.PinLock().Unlock() + err = api.node.Pinning.Update(ctx, fp.Cid(), tp.Cid(), settings.Unpin) if err != nil { return err