mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-17 14:58:16 +00:00
runtime-rs: Simplify iommu group base name extraction from symlink
Just get base name from iommu group symlink is enough. As the validation will be handled in subsequent steps when constructing the full path /sys/kernel/iommu_groups/$iommu_group. In this PR, it will remove dupicalted validation of iommu_group. Signed-off-by: alex.lyn <alex.lyn@antgroup.com>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
//
|
||||
|
||||
use std::{
|
||||
ffi::OsStr,
|
||||
fs,
|
||||
path::{Path, PathBuf},
|
||||
process::Command,
|
||||
@@ -759,14 +760,21 @@ pub fn get_vfio_iommu_group(bdf: String) -> Result<String> {
|
||||
let iommugrp_symlink = fs::read_link(&iommugrp_path)
|
||||
.map_err(|e| anyhow!("read iommu group symlink failed {:?}", e))?;
|
||||
|
||||
// get base name from iommu group symlink: X
|
||||
let iommu_group = get_base_name(iommugrp_symlink)?
|
||||
.into_string()
|
||||
.map_err(|e| anyhow!("failed to get iommu group {:?}", e))?;
|
||||
// Just get base name from iommu group symlink is enough as it will be checked
|
||||
// within the full path /sys/kernel/iommu_groups/$iommu_group in the subsequent step.
|
||||
let iommu_group = iommugrp_symlink
|
||||
.file_name()
|
||||
.and_then(OsStr::to_str)
|
||||
.ok_or_else(|| {
|
||||
anyhow!(
|
||||
"failed to get iommu group with symlink {:?}",
|
||||
iommugrp_symlink
|
||||
)
|
||||
})?;
|
||||
|
||||
// we'd better verify the path to ensure it dose exist.
|
||||
if !Path::new(SYS_KERN_IOMMU_GROUPS)
|
||||
.join(&iommu_group)
|
||||
.join(iommu_group)
|
||||
.join("devices")
|
||||
.join(dbdf.as_str())
|
||||
.exists()
|
||||
|
Reference in New Issue
Block a user