iBreak out snaphdr loading - 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 0dbd594d0b2c51df4b6cfe6f837322b002ccfee2 /scm/dedup/commit/0dbd594d0b2c51df4b6cfe6f837322b002ccfee2.gph bitreich.org 70 1parent 9817f61535da145c316a4bb5861ed913bc16b4cf /scm/dedup/commit/9817f61535da145c316a4bb5861ed913bc16b4cf.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Tue, 26 Feb 2019 11:16:14 +0000 Err bitreich.org 70 i Err bitreich.org 70 iBreak out snaphdr loading Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 41 +++++++++++++++++-------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 23 insertions(+), 18 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@@ -456,10 +456,31 @@ load_cache(void) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static void Err bitreich.org 70 i-init(void) Err bitreich.org 70 i+load_snaphdr(void) Err bitreich.org 70 i { Err bitreich.org 70 i+ uint8_t maj, min; Err bitreich.org 70 i struct stat sb; Err bitreich.org 70 i Err bitreich.org 70 i+ if (fstat(ifd, &sb) < 0) Err bitreich.org 70 i+ err(1, "fstat %s", SNAPSF); Err bitreich.org 70 i+ if (sb.st_size == 0) { Err bitreich.org 70 i+ snaphdr.flags = (VER_MAJ << 8) | VER_MIN; Err bitreich.org 70 i+ snaphdr.st.min_blk_size = comp_size(BLKSIZE_MAX); Err bitreich.org 70 i+ write_snaphdr(ifd, &snaphdr); Err bitreich.org 70 i+ return; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ Err bitreich.org 70 i+ read_snaphdr(ifd, &snaphdr); Err bitreich.org 70 i+ min = snaphdr.flags & 0xff; Err bitreich.org 70 i+ maj = (snaphdr.flags >> 8) & 0xff; Err bitreich.org 70 i+ if (maj != VER_MAJ || min != VER_MIN) Err bitreich.org 70 i+ errx(1, "format version mismatch: expected %u.%u but got %u.%u", Err bitreich.org 70 i+ VER_MAJ, VER_MIN, maj, min); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+static void Err bitreich.org 70 i+init(void) Err bitreich.org 70 i+{ Err bitreich.org 70 i ifd = open(SNAPSF, O_RDWR | O_CREAT, 0600); Err bitreich.org 70 i if (ifd < 0) Err bitreich.org 70 i err(1, "open %s", SNAPSF); Err bitreich.org 70 i@@ -477,23 +498,7 @@ init(void) Err bitreich.org 70 i flock(cfd, LOCK_NB | LOCK_EX) < 0) Err bitreich.org 70 i errx(1, "busy lock"); Err bitreich.org 70 i Err bitreich.org 70 i- if (fstat(ifd, &sb) < 0) Err bitreich.org 70 i- err(1, "fstat %s", SNAPSF); Err bitreich.org 70 i- if (sb.st_size != 0) { Err bitreich.org 70 i- uint8_t maj, min; Err bitreich.org 70 i- Err bitreich.org 70 i- read_snaphdr(ifd, &snaphdr); Err bitreich.org 70 i- min = snaphdr.flags & 0xff; Err bitreich.org 70 i- maj = (snaphdr.flags >> 8) & 0xff; Err bitreich.org 70 i- Err bitreich.org 70 i- if (maj != VER_MAJ || min != VER_MIN) Err bitreich.org 70 i- errx(1, "expected snapshot format version %u.%u but got %u.%u", Err bitreich.org 70 i- VER_MAJ, VER_MIN, maj, min); Err bitreich.org 70 i- } else { Err bitreich.org 70 i- snaphdr.flags = (VER_MAJ << 8) | VER_MIN; Err bitreich.org 70 i- snaphdr.st.min_blk_size = comp_size(BLKSIZE_MAX); Err bitreich.org 70 i- write_snaphdr(ifd, &snaphdr); Err bitreich.org 70 i- } Err bitreich.org 70 i+ load_snaphdr(); Err bitreich.org 70 i Err bitreich.org 70 i cache = alloc_cache(); Err bitreich.org 70 i if (cache_nr_entries() != 0) Err bitreich.org 70 .