From 9294d5ff1a857248c8424bf06401f8d11383ac52 Mon Sep 17 00:00:00 2001
From: Pavel Kirilin <win10@list.ru>
Date: Fri, 7 Jan 2022 12:15:35 +0400
Subject: [PATCH] Fixed eventual freezing.

Signed-off-by: Pavel Kirilin <win10@list.ru>
---
 src/info_storages/file_info_storage.rs | 1 +
 src/storages/file_storage.rs           | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/info_storages/file_info_storage.rs b/src/info_storages/file_info_storage.rs
index fe8ccf1..338ac68 100644
--- a/src/info_storages/file_info_storage.rs
+++ b/src/info_storages/file_info_storage.rs
@@ -59,6 +59,7 @@ impl InfoStorage for FileInfoStorage {
                         .to_string(),
                 )
             })?;
+        file.sync_data().await?;
         Ok(())
     }
 
diff --git a/src/storages/file_storage.rs b/src/storages/file_storage.rs
index a8dbd6e..b6b7419 100644
--- a/src/storages/file_storage.rs
+++ b/src/storages/file_storage.rs
@@ -144,6 +144,7 @@ impl Storage for FileStorage {
             error!("{:?}", err);
             RustusError::UnableToWrite(info.path.clone().unwrap())
         })?;
+        file.sync_data().await?;
         // Updating information about file.
         info.offset += bytes.len();
         self.info_storage.set_info(&info, false).await?;
@@ -180,7 +181,7 @@ impl Storage for FileStorage {
             error!("{:?}", err);
             RustusError::UnableToWrite(file_path.display().to_string())
         })?;
-
+        file.sync_all().await?;
         // Creating new FileInfo object and saving it.
         let file_info = FileInfo::new(
             file_id.as_str(),
-- 
GitLab