diff --git a/vm-virtio/src/vhost_user/blk.rs b/vm-virtio/src/vhost_user/blk.rs index 9a802f26c..4f08284f9 100644 --- a/vm-virtio/src/vhost_user/blk.rs +++ b/vm-virtio/src/vhost_user/blk.rs @@ -34,6 +34,7 @@ struct SlaveReqHandler {} impl VhostUserMasterReqHandler for SlaveReqHandler {} pub struct Blk { + id: String, vhost_user_blk: Master, kill_evt: Option, pause_evt: Option, @@ -49,7 +50,7 @@ pub struct Blk { impl Blk { /// Create a new vhost-user-blk device - pub fn new(wce: bool, vu_cfg: VhostUserConfig) -> Result { + pub fn new(id: String, wce: bool, vu_cfg: VhostUserConfig) -> Result { let mut vhost_user_blk = Master::connect(&vu_cfg.sock, vu_cfg.num_queues as u64) .map_err(Error::VhostUserCreateMaster)?; @@ -140,6 +141,7 @@ impl Blk { } Ok(Blk { + id, vhost_user_blk, kill_evt: None, pause_evt: None, @@ -328,6 +330,10 @@ impl VirtioDevice for Blk { } virtio_pausable!(Blk); -impl Snapshottable for Blk {} +impl Snapshottable for Blk { + fn id(&self) -> String { + self.id.clone() + } +} impl Transportable for Blk {} impl Migratable for Blk {} diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 5c3199c97..4ecaec32e 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -1201,7 +1201,7 @@ impl DeviceManager { queue_size: disk_cfg.queue_size, }; let vhost_user_block_device = Arc::new(Mutex::new( - vm_virtio::vhost_user::Blk::new(disk_cfg.wce, vu_cfg) + vm_virtio::vhost_user::Blk::new(id, disk_cfg.wce, vu_cfg) .map_err(DeviceManagerError::CreateVhostUserBlk)?, ));