iRework lookup - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit a7876bfd884b201019ba7d498347257d1869f340 /scm/dedup/commit/a7876bfd884b201019ba7d498347257d1869f340.gph bitreich.org 70 1parent b32c5c5b3c6b92b0a10ddc694e7df2d233c43c52 /scm/dedup/commit/b32c5c5b3c6b92b0a10ddc694e7df2d233c43c52.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sun, 17 Feb 2019 10:08:01 +0000 Err bitreich.org 70 i Err bitreich.org 70 iRework lookup Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 25 +++++++++++-------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 11 insertions(+), 14 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dedup.c b/dedup.c /scm/dedup/file/dedup.c.gph bitreich.org 70 i@@ -351,16 +351,14 @@ store_size(void) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i int Err bitreich.org 70 i-lookup_blk(uint8_t *md, struct bdescr *bdescr) Err bitreich.org 70 i+lookup_blk(uint8_t *md) Err bitreich.org 70 i { Err bitreich.org 70 i struct cent *ent, key; Err bitreich.org 70 i Err bitreich.org 70 i memcpy(key.bdescr.md, md, sizeof(key.bdescr.md)); Err bitreich.org 70 i ent = RB_FIND(cache, &cache_head, &key); Err bitreich.org 70 i- if (ent != NULL) { Err bitreich.org 70 i- *bdescr = ent->bdescr; Err bitreich.org 70 i+ if (ent != NULL) Err bitreich.org 70 i return 0; Err bitreich.org 70 i- } Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -389,26 +387,25 @@ dedup(int fd) Err bitreich.org 70 i else Err bitreich.org 70 i blksiz = n; Err bitreich.org 70 i Err bitreich.org 70 i- hash_blk(bp, blksiz, md); Err bitreich.org 70 i+ memcpy(bdescr.md, md, sizeof(bdescr)); Err bitreich.org 70 i+ bdescr.offset = store_size(); Err bitreich.org 70 i+ bdescr.size = blksiz; Err bitreich.org 70 i+ Err bitreich.org 70 i+ hash_blk(bp, bdescr.size, bdescr.md); Err bitreich.org 70 i Err bitreich.org 70 i /* Calculate file hash one block at a time */ Err bitreich.org 70 i- SHA256_Update(&ctx, bp, blksiz); Err bitreich.org 70 i+ SHA256_Update(&ctx, bp, bdescr.size); Err bitreich.org 70 i Err bitreich.org 70 i ent = grow_ent(ent, ent->nblks + 1); Err bitreich.org 70 i- if (lookup_blk(md, &bdescr) < 0) { Err bitreich.org 70 i- struct bdescr bdescr; Err bitreich.org 70 i- struct cent *cent; Err bitreich.org 70 i Err bitreich.org 70 i- /* Block not found, create new block descriptor */ Err bitreich.org 70 i- memcpy(bdescr.md, md, sizeof(bdescr)); Err bitreich.org 70 i- bdescr.offset = store_size(); Err bitreich.org 70 i- bdescr.size = blksiz; Err bitreich.org 70 i+ if (lookup_blk(bdescr.md) < 0) { Err bitreich.org 70 i+ struct cent *cent; Err bitreich.org 70 i Err bitreich.org 70 i /* Update index entry */ Err bitreich.org 70 i ent->bdescr[ent->nblks++] = bdescr; Err bitreich.org 70 i Err bitreich.org 70 i /* Store block */ Err bitreich.org 70 i- append_blk(bp, blksiz); Err bitreich.org 70 i+ append_blk(bp, bdescr.size); Err bitreich.org 70 i Err bitreich.org 70 i /* Create a cache entry for this block */ Err bitreich.org 70 i cent = alloc_cent(); Err bitreich.org 70 .