[pbs-devel] [PATCH backup v2 2/2] remove create & truncate when create_new is used

Maximiliano Sandoval m.sandoval at proxmox.com
Mon Jan 27 10:24:40 CET 2025


As per its documentation [1]:

> If .create_new(true) is set, .create() and .truncate() are ignored.

This gets rid of the "file opened with `create`, but `truncate`
behavior not defined " clippy warnings.

[1] https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#method.create_new

Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
 pbs-datastore/src/datastore.rs    | 2 +-
 proxmox-backup-client/src/main.rs | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/pbs-datastore/src/datastore.rs b/pbs-datastore/src/datastore.rs
index fd3990d6..75c0c16a 100644
--- a/pbs-datastore/src/datastore.rs
+++ b/pbs-datastore/src/datastore.rs
@@ -749,9 +749,9 @@ impl DataStore {
 
         let mut open_options = std::fs::OpenOptions::new();
         open_options.write(true);
-        open_options.truncate(true);
 
         if force {
+            open_options.truncate(true);
             open_options.create(true);
         } else {
             open_options.create_new(true);
diff --git a/proxmox-backup-client/src/main.rs b/proxmox-backup-client/src/main.rs
index 632a2917..589a097b 100644
--- a/proxmox-backup-client/src/main.rs
+++ b/proxmox-backup-client/src/main.rs
@@ -1598,7 +1598,6 @@ async fn restore(
         if let Some(target) = target {
             let mut writer = std::fs::OpenOptions::new()
                 .write(true)
-                .create(true)
                 .create_new(true)
                 .open(target)
                 .map_err(|err| {
@@ -1724,7 +1723,6 @@ async fn restore(
         let mut writer = if let Some(target) = target {
             std::fs::OpenOptions::new()
                 .write(true)
-                .create(true)
                 .create_new(true)
                 .open(target)
                 .map_err(|err| format_err!("unable to create target file {:?} - {}", target, err))?
-- 
2.39.5





More information about the pbs-devel mailing list