tFold rebuild_cache inside load_cache - dedup - deduplicating backup program
(HTM) git clone git://git.z3bra.org/dedup.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 4e65a16a45c87ef2b43c2ce799091b74c475211a
(DIR) parent 3609b47d0d3af4279f5b9988a92dd47c4a06a777
(HTM) Author: sin <sin@2f30.org>
Date: Wed, 27 Feb 2019 09:59:02 +0000
Fold rebuild_cache inside load_cache
There is a bug with rebuild cache at the moment.
Diffstat:
M dedup.c | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
---
(DIR) diff --git a/dedup.c b/dedup.c
t@@ -428,23 +428,22 @@ flush_cache(struct cache_entry *cache_entry)
return 0;
}
-static uint64_t
-cache_nr_entries(void)
+static void
+load_cache(void)
{
struct stat sb;
+ uint64_t nr_entries;
+ uint64_t i;
if (fstat(cfd, &sb) < 0)
err(1, "fstat");
- return sb.st_size / CACHE_ENTRY_LEN;
-}
-static void
-load_cache(void)
-{
- uint64_t nr_entries;
- uint64_t i;
+ nr_entries = sb.st_size / CACHE_ENTRY_LEN;
+ if (nr_entries == 0) {
+ walk_snap(rebuild_cache, NULL);
+ return;
+ }
- nr_entries = cache_nr_entries();
for (i = 0; i < nr_entries; i++) {
struct cache_entry cache_entry;
t@@ -479,6 +478,8 @@ load_snaphdr(void)
static void
init(void)
{
+ cache = alloc_cache();
+
ifd = open(SNAPSF, O_RDWR | O_CREAT, 0600);
if (ifd < 0)
err(1, "open %s", SNAPSF);
t@@ -497,12 +498,7 @@ init(void)
errx(1, "busy lock");
load_snaphdr();
-
- cache = alloc_cache();
- if (cache_nr_entries() != 0)
- load_cache();
- else
- walk_snap(rebuild_cache, NULL);
+ load_cache();
}
static void