mount: Make udev_bcachefs_info more idiomatic

Signed-off-by: Tony Asleson <tasleson@redhat.com>
This commit is contained in:
Tony Asleson 2024-05-07 10:04:44 -05:00
parent 3d63b901c6
commit 128b569155

View File

@ -136,19 +136,17 @@ fn udev_bcachefs_info() -> anyhow::Result<HashMap<String, Vec<String>>> {
udev.match_subsystem("block")?; udev.match_subsystem("block")?;
udev.match_property("ID_FS_TYPE", "bcachefs")?; udev.match_property("ID_FS_TYPE", "bcachefs")?;
for dev in udev.scan_devices()? { for m in udev
if !dev.is_initialized() { .scan_devices()?
continue; .filter(|dev| dev.is_initialized())
} .map(|dev| device_property_map(&dev))
.filter(|m| m.contains_key("ID_FS_UUID") && m.contains_key("DEVNAME"))
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 fs_uuid = m["ID_FS_UUID"].clone();
let dev_node = m["DEVNAME"].clone(); let dev_node = m["DEVNAME"].clone();
info.insert(dev_node.clone(), vec![fs_uuid.clone()]); info.insert(dev_node.clone(), vec![fs_uuid.clone()]);
info.entry(fs_uuid).or_insert(vec![]).push(dev_node.clone()); info.entry(fs_uuid).or_insert(vec![]).push(dev_node.clone());
} }
}
Ok(info) Ok(info)
} }