summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Asleson <tasleson@redhat.com>2024-05-07 10:04:44 -0500
committerTony Asleson <tasleson@redhat.com>2024-05-07 12:20:49 -0500
commit128b569155d84b0d2b6e65c28b26619fe576f7e5 (patch)
tree8285dd2d23e7515d2ff40628d3151d5e863a62b6
parent3d63b901c6217a0ea7f169f5e4c66ca1d4ea1088 (diff)
mount: Make udev_bcachefs_info more idiomatic
Signed-off-by: Tony Asleson <tasleson@redhat.com>
-rw-r--r--src/commands/mount.rs22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/commands/mount.rs b/src/commands/mount.rs
index c6e0a37d..9414c77f 100644
--- a/src/commands/mount.rs
+++ b/src/commands/mount.rs
@@ -136,18 +136,16 @@ fn udev_bcachefs_info() -> anyhow::Result<HashMap<String, Vec<String>>> {
udev.match_subsystem("block")?;
udev.match_property("ID_FS_TYPE", "bcachefs")?;
- for dev in udev.scan_devices()? {
- if !dev.is_initialized() {
- continue;
- }
-
- let m = device_property_map(&dev);
- if m.contains_key("ID_FS_UUID") && m.contains_key("DEVNAME") {
- let fs_uuid = m["ID_FS_UUID"].clone();
- let dev_node = m["DEVNAME"].clone();
- info.insert(dev_node.clone(), vec![fs_uuid.clone()]);
- info.entry(fs_uuid).or_insert(vec![]).push(dev_node.clone());
- }
+ for m in udev
+ .scan_devices()?
+ .filter(|dev| dev.is_initialized())
+ .map(|dev| device_property_map(&dev))
+ .filter(|m| m.contains_key("ID_FS_UUID") && m.contains_key("DEVNAME"))
+ {
+ let fs_uuid = m["ID_FS_UUID"].clone();
+ let dev_node = m["DEVNAME"].clone();
+ info.insert(dev_node.clone(), vec![fs_uuid.clone()]);
+ info.entry(fs_uuid).or_insert(vec![]).push(dev_node.clone());
}
Ok(info)