iFactor out snapshot hash calculation to a function - 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 4122001dbfb14b263965c955e865a6c04151fbbc /scm/dedup/commit/4122001dbfb14b263965c955e865a6c04151fbbc.gph bitreich.org 70 1parent 4106dd721d10db6f7ba0fe25009a85be8c5bee61 /scm/dedup/commit/4106dd721d10db6f7ba0fe25009a85be8c5bee61.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sun, 10 Mar 2019 10:25:26 +0000 Err bitreich.org 70 i Err bitreich.org 70 iFactor out snapshot hash calculation to a function Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 37 ++++++++++++++++++------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 21 insertions(+), 16 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@@ -88,6 +88,26 @@ free_snap(struct snapshot *snap) Err bitreich.org 70 i free(snap); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+/* Err bitreich.org 70 i+ * The snapshot hash is calculated over the Err bitreich.org 70 i+ * hash of its block descriptors. Err bitreich.org 70 i+ */ Err bitreich.org 70 i+static void Err bitreich.org 70 i+hash_snap(struct snapshot *snap, uint8_t *md) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ SHA256_CTX ctx; Err bitreich.org 70 i+ uint64_t i; Err bitreich.org 70 i+ Err bitreich.org 70 i+ SHA256_Init(&ctx); Err bitreich.org 70 i+ for (i = 0; i < snap->nr_blk_descs; i++) { Err bitreich.org 70 i+ struct blk_desc *blk_desc; Err bitreich.org 70 i+ Err bitreich.org 70 i+ blk_desc = &snap->blk_desc[i]; Err bitreich.org 70 i+ SHA256_Update(&ctx, blk_desc->md, sizeof(blk_desc->md)); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ SHA256_Final(md, &ctx); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i static struct snapshot * Err bitreich.org 70 i grow_snap(struct snapshot *snap, uint64_t nr_blk_descs) Err bitreich.org 70 i { Err bitreich.org 70 i@@ -245,22 +265,7 @@ dedup(int fd, char *msg) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (snap->nr_blk_descs > 0) { Err bitreich.org 70 i- SHA256_CTX ctx; Err bitreich.org 70 i- uint64_t i; Err bitreich.org 70 i- Err bitreich.org 70 i- /* Err bitreich.org 70 i- * The snapshot hash is calculated over the Err bitreich.org 70 i- * hash of its block descriptors. Err bitreich.org 70 i- */ Err bitreich.org 70 i- SHA256_Init(&ctx); Err bitreich.org 70 i- for (i = 0; i < snap->nr_blk_descs; i++) { Err bitreich.org 70 i- struct blk_desc *blk_desc; Err bitreich.org 70 i- Err bitreich.org 70 i- blk_desc = &snap->blk_desc[i]; Err bitreich.org 70 i- SHA256_Update(&ctx, blk_desc->md, Err bitreich.org 70 i- sizeof(blk_desc->md)); Err bitreich.org 70 i- } Err bitreich.org 70 i- SHA256_Final(snap->md, &ctx); Err bitreich.org 70 i+ hash_snap(snap, snap->md); Err bitreich.org 70 i Err bitreich.org 70 i if (msg != NULL) { Err bitreich.org 70 i size_t size; Err bitreich.org 70 .