diff --git a/src/runtime-rs/crates/resource/src/volume/direct_volumes/vfio_volume.rs b/src/runtime-rs/crates/resource/src/volume/direct_volumes/vfio_volume.rs index a4c226c4ba..132827fd3b 100644 --- a/src/runtime-rs/crates/resource/src/volume/direct_volumes/vfio_volume.rs +++ b/src/runtime-rs/crates/resource/src/volume/direct_volumes/vfio_volume.rs @@ -34,7 +34,6 @@ impl VfioVolume { d: &RwLock, m: &oci::Mount, read_only: bool, - cid: &str, sid: &str, ) -> Result { let mnt_src: &str = &m.source; @@ -59,11 +58,6 @@ impl VfioVolume { .await .context("do handle device failed.")?; - // generate host guest shared path - let guest_path = generate_shared_path(m.destination.clone(), read_only, cid, sid) - .await - .context("generate host-guest shared path failed")?; - let storage_options = if read_only { vec!["ro".to_string()] } else { @@ -72,7 +66,6 @@ impl VfioVolume { let mut storage = agent::Storage { options: storage_options, - mount_point: guest_path.clone(), ..Default::default() }; @@ -84,6 +77,12 @@ impl VfioVolume { storage.source = device.config.virt_path.unwrap().1; } + // generate host guest shared path + let guest_path = generate_shared_path(m.destination.clone(), read_only, &device_id, sid) + .await + .context("generate host-guest shared path failed")?; + storage.mount_point = guest_path.clone(); + if m.r#type != "bind" { storage.fs_type = v.fs_type.clone(); } else { diff --git a/src/runtime-rs/crates/resource/src/volume/mod.rs b/src/runtime-rs/crates/resource/src/volume/mod.rs index 156fc535c7..c6ecc57caf 100644 --- a/src/runtime-rs/crates/resource/src/volume/mod.rs +++ b/src/runtime-rs/crates/resource/src/volume/mod.rs @@ -91,7 +91,7 @@ impl VolumeResource { ) } else if is_vfio_volume(m) { Arc::new( - VfioVolume::new(d, m, read_only, cid, sid) + VfioVolume::new(d, m, read_only, sid) .await .with_context(|| format!("new vfio volume {:?}", m))?, )