Merge pull request #283 from tmuehlbacher/msrv-and-tweaks

Msrv and tweaks
This commit is contained in:
koverstreet 2024-05-30 20:41:29 -04:00 committed by GitHub
commit 96843fc95d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 17 deletions

View File

@ -345,15 +345,15 @@ fn cmd_mount_inner(opt: Cli) -> Result<()> {
if unsafe { bcachefs::bch2_sb_is_encrypted(first_sb.sb) } {
let _key_handle = KeyHandle::new_from_search(&uuid).or_else(|_| {
opt.passphrase_file
.map(|path| {
Passphrase::new_from_file(&first_sb, path)
.inspect_err(|e| {
error!(
"Failed to read passphrase from file, falling back to prompt: {}",
e
)
})
.and_then(|p| KeyHandle::new(&first_sb, &p))
.and_then(|path| match Passphrase::new_from_file(&first_sb, path) {
Ok(p) => Some(KeyHandle::new(&first_sb, &p)),
Err(e) => {
error!(
"Failed to read passphrase from file, falling back to prompt: {}",
e
);
None
}
})
.unwrap_or_else(|| opt.unlock_policy.apply(&first_sb))
});

View File

@ -1,5 +1,5 @@
use std::{
ffi::{CStr, CString},
ffi::{c_long, CStr, CString},
fs,
io::{stdin, IsTerminal},
mem,
@ -34,10 +34,7 @@ impl UnlockPolicy {
pub fn apply(&self, sb: &bch_sb_handle) -> Result<KeyHandle> {
let uuid = sb.sb().uuid();
info!(
"Attempting to unlock filesystem {} with unlock policy '{}'",
uuid, self
);
info!("Using filesystem unlock policy '{self}' on {uuid}");
match self {
Self::Fail => Err(anyhow!("no passphrase available")),
@ -57,12 +54,12 @@ impl Default for UnlockPolicy {
pub struct KeyHandle {
// FIXME: Either these come in useful for something or we remove them
_uuid: Uuid,
_id: i64,
_id: c_long,
}
impl KeyHandle {
pub fn format_key_name(uuid: &Uuid) -> CString {
CString::new(format!("bcachefs:{}", uuid)).unwrap()
CString::new(format!("bcachefs:{uuid}")).unwrap()
}
pub fn new(sb: &bch_sb_handle, passphrase: &Passphrase) -> Result<Self> {
@ -106,7 +103,7 @@ impl KeyHandle {
info!("Found key in keyring");
Ok(KeyHandle {
_uuid: sb.sb().uuid(),
_id: key_id as i64,
_id: key_id as c_long,
})
} else {
Err(anyhow!("failed to add key to keyring: {}", errno::errno()))