mirror of
git://git.proxmox.com/git/proxmox-backup.git
synced 2025-02-26 21:57:33 +03:00
datastore: improve sync level code a bit
fixups for DatastoreFSyncLevel: * use derive for Default * add some more derives (Clone, Copy) chunk store: * drop to_owned for chunk_dir_path Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
4b3c010fd5
commit
8d5039ed57
@ -169,7 +169,7 @@ pub enum ChunkOrder {
|
||||
}
|
||||
|
||||
#[api]
|
||||
#[derive(PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
/// The level of syncing that is done when writing into a datastore.
|
||||
pub enum DatastoreFSyncLevel {
|
||||
@ -181,6 +181,7 @@ pub enum DatastoreFSyncLevel {
|
||||
/// which reduces IO pressure.
|
||||
/// But it may cause losing data on powerloss or system crash without any uninterruptible power
|
||||
/// supply.
|
||||
#[default]
|
||||
None,
|
||||
/// Triggers a fsync after writing any chunk on the datastore. While this can slow down
|
||||
/// backups significantly, depending on the underlying file system and storage used, it
|
||||
@ -198,12 +199,6 @@ pub enum DatastoreFSyncLevel {
|
||||
Filesystem,
|
||||
}
|
||||
|
||||
impl Default for DatastoreFSyncLevel {
|
||||
fn default() -> Self {
|
||||
DatastoreFSyncLevel::None
|
||||
}
|
||||
}
|
||||
|
||||
#[api(
|
||||
properties: {
|
||||
"chunk-order": {
|
||||
|
@ -470,11 +470,10 @@ impl ChunkStore {
|
||||
|
||||
let chunk_dir_path = chunk_path
|
||||
.parent()
|
||||
.ok_or_else(|| format_err!("unable to get chunk dir"))?
|
||||
.to_owned();
|
||||
.ok_or_else(|| format_err!("unable to get chunk dir"))?;
|
||||
|
||||
proxmox_sys::fs::replace_file(
|
||||
chunk_path,
|
||||
&chunk_path,
|
||||
raw_data,
|
||||
CreateOptions::new(),
|
||||
self.sync_level == DatastoreFSyncLevel::File,
|
||||
|
Loading…
x
Reference in New Issue
Block a user