@cryptotaxi247 / netdata-1 / commits / 50edeeeec

fix for dbengine2 improvements part 3 (#14284)

return true when the file is already unmounted

Costa Tsaousis committed Jan 17, 2023 at 19:50 UTC 50edeeeecd5a96a0c6a2bc9b28569fbd9284888a
1 file changed +15 -13
database/engine/journalfile.c
+15 -13
@@ -174,19 +174,21 @@ static bool journalfile_v2_mounted_data_unmount(struct rrdengine_journalfile *jo
174 netdata_spinlock_lock(&journalfile->v2.spinlock);
175 }
176
177 - if(!journalfile->v2.refcount && journalfile->mmap.data) {
178 - if (munmap(journalfile->mmap.data, journalfile->mmap.size)) {
179 - char path[RRDENG_PATH_MAX];
180 - journalfile_v2_generate_path(journalfile->datafile, path, sizeof(path));
181 - error("DBENGINE: failed to unmap index file '%s'", path);
182 - internal_fatal(true, "DBENGINE: failed to unmap file '%s'", path);
183 - ++journalfile->datafile->ctx->stats.fs_errors;
184 - rrd_stat_atomic_add(&global_fs_errors, 1);
185 - }
186 - else {
187 - __atomic_add_fetch(&rrdeng_cache_efficiency_stats.journal_v2_unmapped, 1, __ATOMIC_RELAXED);
188 - journalfile->mmap.data = NULL;
189 - journalfile->v2.flags &= ~JOURNALFILE_FLAG_IS_MOUNTED;
177 + if(!journalfile->v2.refcount) {
178 + if(journalfile->mmap.data) {
179 + if (munmap(journalfile->mmap.data, journalfile->mmap.size)) {
180 + char path[RRDENG_PATH_MAX];
181 + journalfile_v2_generate_path(journalfile->datafile, path, sizeof(path));
182 + error("DBENGINE: failed to unmap index file '%s'", path);
183 + internal_fatal(true, "DBENGINE: failed to unmap file '%s'", path);
184 + ++journalfile->datafile->ctx->stats.fs_errors;
185 + rrd_stat_atomic_add(&global_fs_errors, 1);
186 + }
187 + else {
188 + __atomic_add_fetch(&rrdeng_cache_efficiency_stats.journal_v2_unmapped, 1, __ATOMIC_RELAXED);
189 + journalfile->mmap.data = NULL;
190 + journalfile->v2.flags &= ~JOURNALFILE_FLAG_IS_MOUNTED;
191 + }
192 }
193
194 unmounted = true;