diff --git a/arc_cache.go b/arc_cache.go index ca491e5325cf5671b8a3939abe5dd30cd51c1ecb..b2ba82105c6c4d58af4572965416a4e8f6f03599 100644 --- a/arc_cache.go +++ b/arc_cache.go @@ -37,18 +37,15 @@ func newARCCachedBS(ctx context.Context, bs Blockstore, lruSize int) (*arccache, func (b *arccache) DeleteBlock(k cid.Cid) error { if has, _, ok := b.hasCached(k); ok && !has { - return ErrNotFound + return nil } b.arc.Remove(k) // Invalidate cache before deleting. err := b.blockstore.DeleteBlock(k) - switch err { - case nil, ErrNotFound: + if err == nil { b.cacheHave(k, false) - return err - default: - return err } + return err } // if ok == false has is inconclusive diff --git a/arc_cache_test.go b/arc_cache_test.go index 6911db769cbcd8b23e1c038f89ff5bf92243d578..b72c8485322931e3df2e9e96d2fb2091f9b569de 100644 --- a/arc_cache_test.go +++ b/arc_cache_test.go @@ -139,8 +139,8 @@ func TestGetAndDeleteFalseShortCircuit(t *testing.T) { t.Fatal("get returned invalid result") } - if arc.DeleteBlock(exampleBlock.Cid()) != ErrNotFound { - t.Fatal("expected ErrNotFound error") + if arc.DeleteBlock(exampleBlock.Cid()) != nil { + t.Fatal("expected deletes to be idempotent") } } diff --git a/blockstore.go b/blockstore.go index f57a90af63668879d7b6b00f0f29f7d6c8f395a5..03004b59243b93cbf0ca57cd9100264dd5799b66 100644 --- a/blockstore.go +++ b/blockstore.go @@ -186,11 +186,7 @@ func (bs *blockstore) GetSize(k cid.Cid) (int, error) { } func (bs *blockstore) DeleteBlock(k cid.Cid) error { - err := bs.datastore.Delete(dshelp.CidToDsKey(k)) - if err == ds.ErrNotFound { - return ErrNotFound - } - return err + return bs.datastore.Delete(dshelp.CidToDsKey(k)) } // AllKeysChan runs a query for keys from the blockstore. diff --git a/bloom_cache.go b/bloom_cache.go index bd3c611c34654cdfb8e7235e12161696a2ae711f..6e28ecec6a9d030b3a43478d5d621675e32a242d 100644 --- a/bloom_cache.go +++ b/bloom_cache.go @@ -113,7 +113,7 @@ func (b *bloomcache) build(ctx context.Context) error { func (b *bloomcache) DeleteBlock(k cid.Cid) error { if has, ok := b.hasCached(k); ok && !has { - return ErrNotFound + return nil } return b.blockstore.DeleteBlock(k) diff --git a/go.mod b/go.mod index 709877bc95c3bade38314ada065ddb49ca46af96..e083a3300fe246d06bbacae313b43ece40895408 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ require ( github.com/ipfs/bbloom v0.0.4 github.com/ipfs/go-block-format v0.0.1 github.com/ipfs/go-cid v0.0.1 - github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-datastore v0.1.0 github.com/ipfs/go-ipfs-ds-help v0.0.1 github.com/ipfs/go-ipfs-util v0.0.1 github.com/ipfs/go-log v0.0.1 diff --git a/go.sum b/go.sum index ab63ec676ac9a73defdd0967fb5c0c634ac21d0b..d09b34299625429cac4845937d88aa4ae095b6df 100644 --- a/go.sum +++ b/go.sum @@ -20,6 +20,8 @@ github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.1.0 h1:TOxI04l8CmO4zGtesENhzm4PwkFwJXY3rKiYaaMf9fI= +github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo=