iEnsure chunker is refilled up to capacity - 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 9af5dd1c8a0f4ed051b7247ca759263f5cfee054 /scm/dedup/commit/9af5dd1c8a0f4ed051b7247ca759263f5cfee054.gph bitreich.org 70 1parent 1f27546ac6b0a4fd6f0c5198afa34d5220e57107 /scm/dedup/commit/1f27546ac6b0a4fd6f0c5198afa34d5220e57107.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 21 Feb 2019 14:57:30 +0000 Err bitreich.org 70 i Err bitreich.org 70 iEnsure chunker is refilled up to capacity Err bitreich.org 70 i Err bitreich.org 70 iPreviously we were not refilling the chunker up to its max capacity Err bitreich.org 70 iwhen reading from a pipe. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M chunker.c | 15 ++++++++++----- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 10 insertions(+), 5 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/chunker.c b/chunker.c /scm/dedup/file/chunker.c.gph bitreich.org 70 i@@ -81,11 +81,16 @@ fill_chunker(struct chunker *chunker) Err bitreich.org 70 i uint8_t *bp; Err bitreich.org 70 i ssize_t n; Err bitreich.org 70 i Err bitreich.org 70 i- bp = &chunker->buf[chunker->wpos]; Err bitreich.org 70 i- n = read(chunker->fd, bp, chunker->cap - chunker->wpos); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- err(1, "read"); Err bitreich.org 70 i- chunker->wpos += n; Err bitreich.org 70 i+ while (chunker->cap != chunker->wpos) { Err bitreich.org 70 i+ bp = &chunker->buf[chunker->wpos]; Err bitreich.org 70 i+ n = read(chunker->fd, bp, chunker->cap - chunker->wpos); Err bitreich.org 70 i+ if (n < 0) Err bitreich.org 70 i+ err(1, "read"); Err bitreich.org 70 i+ else if (n == 0) Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ chunker->wpos += n; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ Err bitreich.org 70 i return chunker->wpos; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .