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;