From 2791f96603ae3424fc4ab0dc6cab6d8325f4e92e Mon Sep 17 00:00:00 2001 From: liuchenghao Date: Tue, 27 Jul 2021 15:55:19 +0800 Subject: [PATCH] fix: Failed to mount an empty file in the cache state --- src/cache.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cache.c b/src/cache.c index c2b7bf7..f734c71 100644 --- a/src/cache.c +++ b/src/cache.c @@ -266,7 +266,9 @@ static int Meta_write(Cache *cf) fwrite(&cf->content_length, sizeof(off_t), 1, fp); fwrite(&cf->blksz, sizeof(int), 1, fp); fwrite(&cf->segbc, sizeof(long), 1, fp); - fwrite(cf->seg, sizeof(Seg), cf->segbc, fp); + if (cf->content_length){ + fwrite(cf->seg, sizeof(Seg), cf->segbc, fp); + } /* Error checking for fwrite */ if (ferror(fp)) { @@ -807,7 +809,7 @@ Cache *Cache_open(const char *fn) /* * Internally inconsistent or corrupt metadata */ - if ((rtn == EINCONSIST) || (rtn == EZERO) || (rtn == EMEM)) { + if ((rtn == EINCONSIST) || (rtn == EMEM)) { Cache_free(cf); fprintf(stderr, "Cache_open(): metadata error: %s, %d.\n", fn, rtn); return NULL;