From 4d60ef59bcecbbab6831f9d910cb8f67d971feeb Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Fri, 14 Feb 2020 10:08:59 +0000 Subject: [PATCH] vm-virtio: vhost_user: block: On shutdown() drop the socket This causes the vhost-user-block backend to shutdown. Signed-off-by: Rob Bradford --- vm-virtio/src/vhost_user/blk.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vm-virtio/src/vhost_user/blk.rs b/vm-virtio/src/vhost_user/blk.rs index d53a21ac9..79f52f2d9 100644 --- a/vm-virtio/src/vhost_user/blk.rs +++ b/vm-virtio/src/vhost_user/blk.rs @@ -14,6 +14,7 @@ use libc::EFD_NONBLOCK; use std::cmp; use std::io::Write; use std::mem; +use std::os::unix::io::AsRawFd; use std::result; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; @@ -314,6 +315,10 @@ impl VirtioDevice for Blk { self.queue_evts.take().unwrap(), )) } + + fn shutdown(&mut self) { + let _ = unsafe { libc::close(self.vhost_user_blk.as_raw_fd()) }; + } } virtio_pausable!(Blk);