iUse an int directly instead of wrapper struct - 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 85c3683e1b6a3a087edc3c55efe746ae888a4773 /scm/dedup/commit/85c3683e1b6a3a087edc3c55efe746ae888a4773.gph bitreich.org 70 1parent 806f791ed702e6cbc0aad2a374c53f244ab420f2 /scm/dedup/commit/806f791ed702e6cbc0aad2a374c53f244ab420f2.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Mon, 4 Mar 2019 15:29:47 +0000 Err bitreich.org 70 i Err bitreich.org 70 iUse an int directly instead of wrapper struct 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, 23 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@@ -25,10 +25,6 @@ enum { Err bitreich.org 70 i WALK_STOP Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i-struct check_cache_args { Err bitreich.org 70 i- int ret; Err bitreich.org 70 i-}; Err bitreich.org 70 i- Err bitreich.org 70 i struct extract_args { Err bitreich.org 70 i uint8_t *md; Err bitreich.org 70 i int fd; Err bitreich.org 70 i@@ -359,9 +355,16 @@ check_snap(struct snapshot *snap, void *arg) Err bitreich.org 70 i { Err bitreich.org 70 i uint8_t md[MDSIZE]; Err bitreich.org 70 i uint8_t *buf; Err bitreich.org 70 i+ int *ret = arg; 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+ if (verbose > 0) { Err bitreich.org 70 i+ fprintf(stderr, "Checking snapshot: "); Err bitreich.org 70 i+ print_md(stderr, snap->md, sizeof(snap->md)); Err bitreich.org 70 i+ fputc('\n', stderr); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ Err bitreich.org 70 i buf = alloc_buf(compr_size(BLKSIZE_MAX)); 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@@ -378,7 +381,7 @@ check_snap(struct snapshot *snap, void *arg) Err bitreich.org 70 i Err bitreich.org 70 i fprintf(stderr, "Block hash mismatch\n"); Err bitreich.org 70 i fprintf(stderr, " Expected hash: "); Err bitreich.org 70 i- print_md(stderr, snap->md, sizeof(snap->md)); Err bitreich.org 70 i+ print_md(stderr, blk_desc->md, sizeof(blk_desc->md)); Err bitreich.org 70 i fputc('\n', stderr); Err bitreich.org 70 i fprintf(stderr, " Actual hash: "); Err bitreich.org 70 i print_md(stderr, md, sizeof(md)); Err bitreich.org 70 i@@ -387,6 +390,7 @@ check_snap(struct snapshot *snap, void *arg) Err bitreich.org 70 i (unsigned long long)blk_desc->offset); Err bitreich.org 70 i fprintf(stderr, " Size: %llu\n", Err bitreich.org 70 i (unsigned long long)blk_desc->size); Err bitreich.org 70 i+ *ret = -1; Err bitreich.org 70 i } Err bitreich.org 70 i free_buf(buf); Err bitreich.org 70 i return WALK_CONTINUE; Err bitreich.org 70 i@@ -401,7 +405,7 @@ check_snap(struct snapshot *snap, void *arg) Err bitreich.org 70 i static int Err bitreich.org 70 i check_cache(struct snapshot *snap, void *arg) Err bitreich.org 70 i { Err bitreich.org 70 i- struct check_cache_args *args = arg; Err bitreich.org 70 i+ int *ret = arg; Err bitreich.org 70 i uint64_t i; Err bitreich.org 70 i Err bitreich.org 70 i for (i = 0; i < snap->nr_blk_descs; i++) { Err bitreich.org 70 i@@ -411,11 +415,10 @@ check_cache(struct snapshot *snap, void *arg) Err bitreich.org 70 i blk_desc = &snap->blk_desc[i]; Err bitreich.org 70 i memcpy(&cache_entry.md, blk_desc->md, sizeof(cache_entry.md)); Err bitreich.org 70 i if (lookup_cache_entry(cache, &cache_entry) < 0) { Err bitreich.org 70 i- args->ret = -1; Err bitreich.org 70 i+ *ret = -1; Err bitreich.org 70 i return WALK_STOP; Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i- args->ret = 0; Err bitreich.org 70 i return WALK_CONTINUE; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -740,17 +743,23 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (cflag) { Err bitreich.org 70 i- struct check_cache_args args; Err bitreich.org 70 i+ int ret; Err bitreich.org 70 i Err bitreich.org 70 i xlseek(ifd, SNAP_HDR_SIZE, SEEK_SET); Err bitreich.org 70 i- walk_snap(check_snap, NULL); Err bitreich.org 70 i+ ret = 0; Err bitreich.org 70 i+ walk_snap(check_snap, &ret); Err bitreich.org 70 i+ if (ret != 0) Err bitreich.org 70 i+ errx(1, ".snapshots or .store is corrupted"); Err bitreich.org 70 i Err bitreich.org 70 i- args.ret = -1; Err bitreich.org 70 i- if (cache_nr_entries() == snap_hdr.st.nr_blks) { Err bitreich.org 70 i+ if (cache_nr_entries() != snap_hdr.st.nr_blks) { Err bitreich.org 70 i+ ret = -1; Err bitreich.org 70 i+ } else { Err bitreich.org 70 i xlseek(ifd, SNAP_HDR_SIZE, SEEK_SET); Err bitreich.org 70 i- walk_snap(check_cache, &args); Err bitreich.org 70 i+ ret = 0; Err bitreich.org 70 i+ walk_snap(check_cache, &ret); Err bitreich.org 70 i } Err bitreich.org 70 i- if (args.ret != 0) { Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (ret != 0) { Err bitreich.org 70 i free_cache(cache); Err bitreich.org 70 i cache = alloc_cache(); Err bitreich.org 70 i Err bitreich.org 70 .