mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-01-22 04:25:21 +00:00
vhost-user-blk: enable write_config for WCE
In vhost-user-blk, only WCE value can be set back to device in guest kernel like echo "write through" > /sys/block/vda/cache_type So write_config() will only set WCE value from guest kernel to vhost user side. Signed-off-by: Yang Zhong <yang.zhong@intel.com>
This commit is contained in:
parent
39083d705b
commit
360980d93c
@ -61,6 +61,10 @@ impl<'a> Blk {
|
||||
| 1 << VIRTIO_F_VERSION_1
|
||||
| VhostUserVirtioFeatures::PROTOCOL_FEATURES.bits();
|
||||
|
||||
if wce {
|
||||
avail_features |= 1 << VIRTIO_BLK_F_CONFIG_WCE;
|
||||
}
|
||||
|
||||
// Set vhost-user owner.
|
||||
vhost_user_blk
|
||||
.set_owner()
|
||||
@ -190,8 +194,15 @@ impl VirtioDevice for Blk {
|
||||
error!("Failed to write config space");
|
||||
return;
|
||||
}
|
||||
let (_, right) = self.config_space.split_at_mut(offset as usize);
|
||||
right.copy_from_slice(&data[..]);
|
||||
// In fact, write_config() only handle wce value in vhost-user-blk.
|
||||
// so, we can only set wce value here.
|
||||
if self.config_space[offset as usize] == data[0] {
|
||||
return;
|
||||
}
|
||||
self.vhost_user_blk
|
||||
.set_config(offset as u32, VhostUserConfigFlags::WRITABLE, data)
|
||||
.expect("Failed to set config");
|
||||
self.config_space[offset as usize] = data[0];
|
||||
}
|
||||
|
||||
fn activate(
|
||||
|
Loading…
x
Reference in New Issue
Block a user