diff --git a/src/modules/logger/log_writer_file.cpp b/src/modules/logger/log_writer_file.cpp
index 24095a3738c78b869826bfa8e290b62b52c1bc5f..a2c09fbc7f481aac2c49a96dbd5539e3e3a11437 100644
--- a/src/modules/logger/log_writer_file.cpp
+++ b/src/modules/logger/log_writer_file.cpp
@@ -257,8 +257,10 @@ void LogWriterFile::run()
 						buffer.close_file();
 					}
 
-				} else if (call_fsync) {
+				} else if (call_fsync && buffer._should_run) {
+					pthread_mutex_unlock(&_mtx);
 					buffer.fsync();
+					pthread_mutex_lock(&_mtx);
 
 				} else if (available == 0 && !buffer._should_run) {
 					buffer.close_file();