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]
|
#[api]
|
||||||
#[derive(PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
/// The level of syncing that is done when writing into a datastore.
|
/// The level of syncing that is done when writing into a datastore.
|
||||||
pub enum DatastoreFSyncLevel {
|
pub enum DatastoreFSyncLevel {
|
||||||
@ -181,6 +181,7 @@ pub enum DatastoreFSyncLevel {
|
|||||||
/// which reduces IO pressure.
|
/// which reduces IO pressure.
|
||||||
/// But it may cause losing data on powerloss or system crash without any uninterruptible power
|
/// But it may cause losing data on powerloss or system crash without any uninterruptible power
|
||||||
/// supply.
|
/// supply.
|
||||||
|
#[default]
|
||||||
None,
|
None,
|
||||||
/// Triggers a fsync after writing any chunk on the datastore. While this can slow down
|
/// 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
|
/// backups significantly, depending on the underlying file system and storage used, it
|
||||||
@ -198,12 +199,6 @@ pub enum DatastoreFSyncLevel {
|
|||||||
Filesystem,
|
Filesystem,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for DatastoreFSyncLevel {
|
|
||||||
fn default() -> Self {
|
|
||||||
DatastoreFSyncLevel::None
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
properties: {
|
properties: {
|
||||||
"chunk-order": {
|
"chunk-order": {
|
||||||
|
@ -470,11 +470,10 @@ impl ChunkStore {
|
|||||||
|
|
||||||
let chunk_dir_path = chunk_path
|
let chunk_dir_path = chunk_path
|
||||||
.parent()
|
.parent()
|
||||||
.ok_or_else(|| format_err!("unable to get chunk dir"))?
|
.ok_or_else(|| format_err!("unable to get chunk dir"))?;
|
||||||
.to_owned();
|
|
||||||
|
|
||||||
proxmox_sys::fs::replace_file(
|
proxmox_sys::fs::replace_file(
|
||||||
chunk_path,
|
&chunk_path,
|
||||||
raw_data,
|
raw_data,
|
||||||
CreateOptions::new(),
|
CreateOptions::new(),
|
||||||
self.sync_level == DatastoreFSyncLevel::File,
|
self.sync_level == DatastoreFSyncLevel::File,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user