* [pbs-devel] [PATCH proxmox] sys: pass create options as reference
@ 2024-05-29 9:39 Dietmar Maurer
0 siblings, 0 replies; only message in thread
From: Dietmar Maurer @ 2024-05-29 9:39 UTC (permalink / raw)
To: pbs-devel
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
---
proxmox-openid/src/auth_state.rs | 4 ++--
proxmox-rest-server/src/api_config.rs | 4 ++--
proxmox-rest-server/src/daemon.rs | 2 +-
proxmox-rest-server/src/file_logger.rs | 2 +-
proxmox-rest-server/src/lib.rs | 2 +-
proxmox-rest-server/src/worker_task.rs | 10 +++++-----
proxmox-rrd/src/cache.rs | 4 ++--
proxmox-rrd/src/cache/journal.rs | 4 ++--
proxmox-rrd/src/cache/rrd_map.rs | 4 ++--
proxmox-rrd/src/rrd.rs | 2 +-
proxmox-subscription/src/files.rs | 4 ++--
proxmox-sys/src/fs/dir.rs | 20 ++++++++++----------
proxmox-sys/src/fs/file.rs | 8 ++++----
proxmox-sys/src/logrotate.rs | 2 +-
14 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/proxmox-openid/src/auth_state.rs b/proxmox-openid/src/auth_state.rs
index f2a299a0..72b7ce4c 100644
--- a/proxmox-openid/src/auth_state.rs
+++ b/proxmox-openid/src/auth_state.rs
@@ -20,7 +20,7 @@ fn load_auth_state_locked(
lock_path,
std::time::Duration::new(10, 0),
true,
- CreateOptions::new(),
+ &CreateOptions::new(),
)?;
let mut path = state_dir.to_owned();
@@ -50,7 +50,7 @@ fn replace_auth_state(path: &Path, data: &Vec<Value>) -> Result<(), Error> {
let options = CreateOptions::new().perm(mode);
let raw = serde_json::to_string_pretty(data)?;
- replace_file(path, raw.as_bytes(), options, false)?;
+ replace_file(path, raw.as_bytes(), &options, false)?;
Ok(())
}
diff --git a/proxmox-rest-server/src/api_config.rs b/proxmox-rest-server/src/api_config.rs
index 80589446..1ab2130e 100644
--- a/proxmox-rest-server/src/api_config.rs
+++ b/proxmox-rest-server/src/api_config.rs
@@ -213,7 +213,7 @@ impl ApiConfig {
let path: PathBuf = path.into();
if let Some(base) = path.parent() {
if !base.exists() {
- create_path(base, None, dir_opts).map_err(|err| format_err!("{}", err))?;
+ create_path(base, None, dir_opts.as_ref()).map_err(|err| format_err!("{}", err))?;
}
}
@@ -252,7 +252,7 @@ impl ApiConfig {
let path: PathBuf = path.into();
if let Some(base) = path.parent() {
if !base.exists() {
- create_path(base, None, dir_opts).map_err(|err| format_err!("{}", err))?;
+ create_path(base, None, dir_opts.as_ref()).map_err(|err| format_err!("{}", err))?;
}
}
diff --git a/proxmox-rest-server/src/daemon.rs b/proxmox-rest-server/src/daemon.rs
index fedbf545..098b93f0 100644
--- a/proxmox-rest-server/src/daemon.rs
+++ b/proxmox-rest-server/src/daemon.rs
@@ -186,7 +186,7 @@ impl Reloader {
proxmox_sys::fs::replace_file(
pid_fn,
pid_str.as_bytes(),
- CreateOptions::new(),
+ &CreateOptions::new(),
false,
)?;
}
diff --git a/proxmox-rest-server/src/file_logger.rs b/proxmox-rest-server/src/file_logger.rs
index 2bb1fac6..50a23a02 100644
--- a/proxmox-rest-server/src/file_logger.rs
+++ b/proxmox-rest-server/src/file_logger.rs
@@ -98,7 +98,7 @@ impl FileLogger {
}
let file =
- atomic_open_or_create_file(&file_name, flags, &[], options.file_opts.clone(), false)?;
+ atomic_open_or_create_file(&file_name, flags, &[], &options.file_opts, false)?;
Ok(file)
}
diff --git a/proxmox-rest-server/src/lib.rs b/proxmox-rest-server/src/lib.rs
index ce9e4f15..ac0cc4ce 100644
--- a/proxmox-rest-server/src/lib.rs
+++ b/proxmox-rest-server/src/lib.rs
@@ -80,7 +80,7 @@ pub(crate) fn pstart() -> u64 {
/// Helper to write the PID into a file
pub fn write_pid(pid_fn: &str) -> Result<(), Error> {
let pid_str = format!("{}\n", *PID);
- proxmox_sys::fs::replace_file(pid_fn, pid_str.as_bytes(), CreateOptions::new(), false)
+ proxmox_sys::fs::replace_file(pid_fn, pid_str.as_bytes(), &CreateOptions::new(), false)
}
/// Helper to read the PID from a file
diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs
index 4cf24cc4..b63f7049 100644
--- a/proxmox-rest-server/src/worker_task.rs
+++ b/proxmox-rest-server/src/worker_task.rs
@@ -83,7 +83,7 @@ impl WorkerTaskSetup {
let timeout = std::time::Duration::new(10, 0);
let file =
- proxmox_sys::fs::open_file_locked(&self.task_lock_fn, timeout, exclusive, options)?;
+ proxmox_sys::fs::open_file_locked(&self.task_lock_fn, timeout, exclusive, &options)?;
Ok(TaskListLockGuard(file))
}
@@ -107,7 +107,7 @@ impl WorkerTaskSetup {
.clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o755));
- create_path(&path, None, Some(dir_opts))?;
+ create_path(&path, None, Some(&dir_opts))?;
path.push(upid.to_string());
Ok(path)
@@ -166,7 +166,7 @@ impl WorkerTaskSetup {
.clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o660));
- replace_file(&self.active_tasks_fn, active_raw.as_bytes(), options, false)?;
+ replace_file(&self.active_tasks_fn, active_raw.as_bytes(), &options, false)?;
finish_list.sort_unstable_by(|a, b| match (&a.state, &b.state) {
(Some(s1), Some(s2)) => s1.cmp(s2),
@@ -185,7 +185,7 @@ impl WorkerTaskSetup {
&self.task_archive_fn,
OFlag::O_APPEND | OFlag::O_RDWR,
&[],
- options,
+ &options,
false,
)?;
for info in &finish_list {
@@ -212,7 +212,7 @@ impl WorkerTaskSetup {
.clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o755));
- create_path(&self.taskdir, Some(dir_opts.clone()), Some(dir_opts))?;
+ create_path(&self.taskdir, Some(&dir_opts), Some(&dir_opts))?;
// fixme:??? create_path(pbs_buildcfg::PROXMOX_BACKUP_RUN_DIR, None, Some(opts))?;
Ok(())
})
diff --git a/proxmox-rrd/src/cache.rs b/proxmox-rrd/src/cache.rs
index e3d2f8d5..683c8c4e 100644
--- a/proxmox-rrd/src/cache.rs
+++ b/proxmox-rrd/src/cache.rs
@@ -67,8 +67,8 @@ impl Cache {
create_path(
&basedir,
- Some(dir_options.clone()),
- Some(dir_options.clone()),
+ Some(&dir_options),
+ Some(&dir_options),
)
.map_err(|err: Error| format_err!("unable to create rrdb stat dir - {}", err))?;
diff --git a/proxmox-rrd/src/cache/journal.rs b/proxmox-rrd/src/cache/journal.rs
index c196b342..447c0690 100644
--- a/proxmox-rrd/src/cache/journal.rs
+++ b/proxmox-rrd/src/cache/journal.rs
@@ -116,7 +116,7 @@ impl JournalState {
&journal_path,
flags,
&[],
- self.config.file_options.clone(),
+ &self.config.file_options,
false,
)?;
Ok(BufReader::new(journal))
@@ -131,7 +131,7 @@ impl JournalState {
&journal_path,
flags,
&[],
- config.file_options.clone(),
+ &config.file_options,
false,
)?;
Ok(journal)
diff --git a/proxmox-rrd/src/cache/rrd_map.rs b/proxmox-rrd/src/cache/rrd_map.rs
index 881b3987..8c09e2af 100644
--- a/proxmox-rrd/src/cache/rrd_map.rs
+++ b/proxmox-rrd/src/cache/rrd_map.rs
@@ -46,8 +46,8 @@ impl RRDMap {
path.push(rel_path);
create_path(
path.parent().unwrap(),
- Some(self.config.dir_options.clone()),
- Some(self.config.dir_options.clone()),
+ Some(&self.config.dir_options),
+ Some(&self.config.dir_options),
)?;
let mut rrd = (self.load_rrd_cb)(&path, rel_path, dst);
diff --git a/proxmox-rrd/src/rrd.rs b/proxmox-rrd/src/rrd.rs
index 440abe06..2e8f0f06 100644
--- a/proxmox-rrd/src/rrd.rs
+++ b/proxmox-rrd/src/rrd.rs
@@ -424,7 +424,7 @@ impl Database {
options: CreateOptions,
avoid_page_cache: bool,
) -> Result<(), Error> {
- let (fd, tmp_path) = make_tmp_file(path, options)?;
+ let (fd, tmp_path) = make_tmp_file(path, &options)?;
let mut file = unsafe { std::fs::File::from_raw_fd(fd.into_raw_fd()) };
let mut try_block = || -> Result<(), Error> {
diff --git a/proxmox-subscription/src/files.rs b/proxmox-subscription/src/files.rs
index 37008f4a..f0ff9bf4 100644
--- a/proxmox-subscription/src/files.rs
+++ b/proxmox-subscription/src/files.rs
@@ -127,7 +127,7 @@ pub fn write_subscription<P: AsRef<Path>>(
format!("{}\n{}\n{}\n", info.key.as_ref().unwrap(), csum, encoded)
};
- replace_file(path, raw.as_bytes(), file_opts, true)?;
+ replace_file(path, raw.as_bytes(), &file_opts, true)?;
Ok(())
}
@@ -152,7 +152,7 @@ pub fn update_apt_auth<P: AsRef<Path>>(
let conf = format!("machine {url}\n login {}\n password {}\n", key, password,);
// we use a namespaced .conf file, so just overwrite..
- replace_file(path, conf.as_bytes(), file_opts, true)
+ replace_file(path, conf.as_bytes(), &file_opts, true)
.map_err(|e| format_err!("Error saving apt auth config - {}", e))?;
}
_ => match std::fs::remove_file(path) {
diff --git a/proxmox-sys/src/fs/dir.rs b/proxmox-sys/src/fs/dir.rs
index c39b9fdf..8e75111a 100644
--- a/proxmox-sys/src/fs/dir.rs
+++ b/proxmox-sys/src/fs/dir.rs
@@ -14,7 +14,7 @@ use crate::fs::{fchown, CreateOptions};
/// Creates directory at the provided path with specified ownership.
///
/// Errors if the directory already exists.
-pub fn create_dir<P: AsRef<Path>>(path: P, options: CreateOptions) -> Result<(), nix::Error> {
+pub fn create_dir<P: AsRef<Path>>(path: P, options: &CreateOptions) -> Result<(), nix::Error> {
// clippy bug?: from_bits_truncate is actually a const fn...
#[allow(clippy::or_fun_call)]
let mode: stat::Mode = options
@@ -87,7 +87,7 @@ pub fn ensure_dir_exists<P: AsRef<Path>>(
/// create_path(
/// "/var/lib/mytool/wwwdata",
/// None,
-/// Some(CreateOptions::new()
+/// Some(&CreateOptions::new()
/// .perm(Mode::from_bits(0o777).unwrap())
/// .owner(Uid::from_raw(33))
/// ),
@@ -97,16 +97,16 @@ pub fn ensure_dir_exists<P: AsRef<Path>>(
/// ```
pub fn create_path<P: AsRef<Path>>(
path: P,
- intermediate_opts: Option<CreateOptions>,
- final_opts: Option<CreateOptions>,
+ intermediate_opts: Option<&CreateOptions>,
+ final_opts: Option<&CreateOptions>,
) -> Result<bool, Error> {
create_path_do(path.as_ref(), intermediate_opts, final_opts)
}
fn create_path_do(
path: &Path,
- intermediate_opts: Option<CreateOptions>,
- final_opts: Option<CreateOptions>,
+ intermediate_opts: Option<&CreateOptions>,
+ final_opts: Option<&CreateOptions>,
) -> Result<bool, Error> {
use std::path::Component;
@@ -146,8 +146,8 @@ fn create_path_do(
fn create_path_at_do(
mut at: OwnedFd,
mut iter: std::iter::Peekable<std::path::Components>,
- intermediate_opts: Option<CreateOptions>,
- final_opts: Option<CreateOptions>,
+ intermediate_opts: Option<&CreateOptions>,
+ final_opts: Option<&CreateOptions>,
) -> Result<bool, Error> {
let mut created = false;
loop {
@@ -206,9 +206,9 @@ mod tests {
fn test_create_path() {
create_path(
"testdir/testsub/testsub2/testfinal",
- Some(CreateOptions::new().perm(stat::Mode::from_bits_truncate(0o755))),
+ Some(&CreateOptions::new().perm(stat::Mode::from_bits_truncate(0o755))),
Some(
- CreateOptions::new()
+ &CreateOptions::new()
.owner(nix::unistd::Uid::effective())
.group(nix::unistd::Gid::effective()),
),
diff --git a/proxmox-sys/src/fs/file.rs b/proxmox-sys/src/fs/file.rs
index ac513891..41915ebb 100644
--- a/proxmox-sys/src/fs/file.rs
+++ b/proxmox-sys/src/fs/file.rs
@@ -128,7 +128,7 @@ pub fn file_read_firstline<P: AsRef<Path>>(path: P) -> Result<String, Error> {
/// a RawFd and PathBuf for it
pub fn make_tmp_file<P: AsRef<Path>>(
path: P,
- options: CreateOptions,
+ options: &CreateOptions,
) -> Result<(File, PathBuf), Error> {
let path = path.as_ref();
@@ -159,7 +159,7 @@ pub fn make_tmp_file<P: AsRef<Path>>(
pub fn replace_file<P: AsRef<Path>>(
path: P,
data: &[u8],
- options: CreateOptions,
+ options: &CreateOptions,
fsync: bool,
) -> Result<(), Error> {
let (fd, tmp_path) = make_tmp_file(&path, options)?;
@@ -204,7 +204,7 @@ pub fn atomic_open_or_create_file<P: AsRef<Path>>(
path: P,
mut oflag: OFlag,
initial_data: &[u8],
- options: CreateOptions,
+ options: &CreateOptions,
fsync: bool,
) -> Result<File, Error> {
let path = path.as_ref();
@@ -410,7 +410,7 @@ pub fn open_file_locked<P: AsRef<Path>>(
path: P,
timeout: Duration,
exclusive: bool,
- options: CreateOptions,
+ options: &CreateOptions,
) -> Result<File, Error> {
let path = path.as_ref();
diff --git a/proxmox-sys/src/logrotate.rs b/proxmox-sys/src/logrotate.rs
index 704a18ce..af09723f 100644
--- a/proxmox-sys/src/logrotate.rs
+++ b/proxmox-sys/src/logrotate.rs
@@ -64,7 +64,7 @@ impl LogRotate {
options: &CreateOptions,
) -> Result<(), Error> {
let mut source = File::open(source_path)?;
- let (fd, tmp_path) = make_tmp_file(target_path, options.clone())?;
+ let (fd, tmp_path) = make_tmp_file(target_path, options)?;
let target = unsafe { File::from_raw_fd(fd.into_raw_fd()) };
let mut encoder = match zstd::stream::write::Encoder::new(target, 0) {
Ok(encoder) => encoder,
--
2.39.2
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-05-29 9:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-29 9:39 [pbs-devel] [PATCH proxmox] sys: pass create options as reference Dietmar Maurer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.