From 3488d4f15f3d4e23ab37fd4c19f02805f55081d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= Date: Wed, 22 May 2024 22:17:04 +0200 Subject: [PATCH 1/2] refactor: `cargo clippy --fix` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Mühlbacher --- src/commands/mount.rs | 12 ++++++------ src/key.rs | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/commands/mount.rs b/src/commands/mount.rs index 9414c77f..991fedcf 100644 --- a/src/commands/mount.rs +++ b/src/commands/mount.rs @@ -50,7 +50,7 @@ fn parse_mount_options(options: impl AsRef) -> (Option, libc::c_ulo debug!("parsing mount options: {}", options.as_ref()); let (opts, flags) = options .as_ref() - .split(",") + .split(',') .map(|o| match o { "dirsync" => Left(libc::MS_DIRSYNC), "lazytime" => Left(1 << 25), // MS_LAZYTIME @@ -67,7 +67,7 @@ fn parse_mount_options(options: impl AsRef) -> (Option, libc::c_ulo "strictatime" => Left(libc::MS_STRICTATIME), "sync" => Left(libc::MS_SYNCHRONOUS), "" => Left(0), - o @ _ => Right(o), + o => Right(o), }) .fold((Vec::new(), 0), |(mut opts, flags), next| match next { Left(f) => (opts, flags | f), @@ -78,7 +78,7 @@ fn parse_mount_options(options: impl AsRef) -> (Option, libc::c_ulo }); ( - if opts.len() == 0 { + if opts.is_empty() { None } else { Some(opts.join(",")) @@ -105,7 +105,7 @@ fn read_super_silent(path: &std::path::PathBuf) -> anyhow::Result let mut opts = bcachefs::bch_opts::default(); opt_set!(opts, noexcl, 1); - bch_bindgen::sb_io::read_super_silent(&path, opts) + bch_bindgen::sb_io::read_super_silent(path, opts) } fn device_property_map(dev: &udev::Device) -> HashMap { @@ -327,7 +327,7 @@ fn cmd_mount_inner(opt: Cli) -> anyhow::Result<()> { // If they supply a single device it could be either the FS only has 1 device or it's // only 1 of a number of devices which are part of the FS. This appears to be the case // when we get called during fstab mount processing and the fstab specifies a UUID. - if opt.dev.contains(":") { + if opt.dev.contains(':') { let mut block_devices_to_mount = Vec::new(); for dev in opt.dev.split(':') { @@ -341,7 +341,7 @@ fn cmd_mount_inner(opt: Cli) -> anyhow::Result<()> { } }; - if block_devices_to_mount.len() == 0 { + if block_devices_to_mount.is_empty() { Err(anyhow::anyhow!("No device found from specified parameters"))?; } // Check if the filesystem's master key is encrypted diff --git a/src/key.rs b/src/key.rs index d0018805..3fc36794 100644 --- a/src/key.rs +++ b/src/key.rs @@ -118,13 +118,13 @@ fn unlock_master_key(sb: &bch_sb_handle, passphrase: &String) -> anyhow::Result< ) }; - let mut key = crypt.key().clone(); + let mut key = *crypt.key(); let ret = unsafe { bch2_chacha_encrypt_key( &mut output as *mut _, sb.sb().nonce(), &mut key as *mut _ as *mut _, - std::mem::size_of::() as usize, + std::mem::size_of::(), ) }; if ret != 0 { @@ -138,7 +138,7 @@ fn unlock_master_key(sb: &bch_sb_handle, passphrase: &String) -> anyhow::Result< key_type, key_name.as_c_str().to_bytes_with_nul() as *const _ as *const c_char, &output as *const _ as *const _, - std::mem::size_of::() as usize, + std::mem::size_of::(), bch_bindgen::keyutils::KEY_SPEC_USER_KEYRING, ) }; From 3882d1b1e4a8a0b8453d08fdf380bb1b3e3be510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= Date: Wed, 22 May 2024 22:21:31 +0200 Subject: [PATCH 2/2] refactor: manually fix remaining clippy lints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Mühlbacher --- src/commands/mount.rs | 9 +++++---- src/key.rs | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/commands/mount.rs b/src/commands/mount.rs index 991fedcf..05c586a8 100644 --- a/src/commands/mount.rs +++ b/src/commands/mount.rs @@ -4,7 +4,7 @@ use std::collections::HashMap; use clap::Parser; use uuid::Uuid; use std::io::{stdout, IsTerminal}; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::{fs, str, env}; use crate::key; use crate::key::UnlockPolicy; @@ -101,11 +101,11 @@ fn do_mount( mount_inner(device, target, "bcachefs", mountflags, data) } -fn read_super_silent(path: &std::path::PathBuf) -> anyhow::Result { +fn read_super_silent(path: impl AsRef) -> anyhow::Result { let mut opts = bcachefs::bch_opts::default(); opt_set!(opts, noexcl, 1); - bch_bindgen::sb_io::read_super_silent(path, opts) + bch_bindgen::sb_io::read_super_silent(path.as_ref(), opts) } fn device_property_map(dev: &udev::Device) -> HashMap { @@ -158,7 +158,7 @@ fn get_super_blocks( Ok(devices .iter() .filter_map(|dev| { - read_super_silent(&PathBuf::from(dev)) + read_super_silent(PathBuf::from(dev)) .ok() .map(|sb| (PathBuf::from(dev), sb)) }) @@ -203,6 +203,7 @@ fn get_devices_by_uuid( get_super_blocks(uuid, &devices) } +#[allow(clippy::type_complexity)] fn get_uuid_for_dev_node( udev_bcachefs: &HashMap>, device: &std::path::PathBuf, diff --git a/src/key.rs b/src/key.rs index 3fc36794..8019a7e6 100644 --- a/src/key.rs +++ b/src/key.rs @@ -98,7 +98,7 @@ fn ask_for_passphrase(sb: &bch_sb_handle) -> anyhow::Result<()> { } const BCH_KEY_MAGIC: &str = "bch**key"; -fn unlock_master_key(sb: &bch_sb_handle, passphrase: &String) -> anyhow::Result<()> { +fn unlock_master_key(sb: &bch_sb_handle, passphrase: &str) -> anyhow::Result<()> { use bch_bindgen::bcachefs::{self, bch2_chacha_encrypt_key, bch_encrypted_key, bch_key}; use byteorder::{LittleEndian, ReadBytesExt}; use std::os::raw::c_char;