From 0a1ffc1d9777755aaf3d26633ee37eb4b8eb78d9 Mon Sep 17 00:00:00 2001 From: Jose Carlos Venegas Munoz Date: Fri, 27 Mar 2020 04:26:57 +0000 Subject: [PATCH] types: Make FS sharing disable by default All the other caps are inverted (not supported by default). Make fs sharing not supported by default and let hypervisors expose if it supports it. Signed-off-by: Jose Carlos Venegas Munoz --- virtcontainers/acrn_arch_base.go | 2 -- virtcontainers/fc.go | 1 - virtcontainers/qemu_amd64.go | 1 + virtcontainers/qemu_arch_base.go | 1 + virtcontainers/types/capabilities.go | 8 ++++---- virtcontainers/types/capabilities_test.go | 4 ++-- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/virtcontainers/acrn_arch_base.go b/virtcontainers/acrn_arch_base.go index 61197ea2f..8e447ed16 100644 --- a/virtcontainers/acrn_arch_base.go +++ b/virtcontainers/acrn_arch_base.go @@ -360,8 +360,6 @@ func (a *acrnArchBase) memoryTopology(memoryMb uint64) Memory { func (a *acrnArchBase) capabilities() types.Capabilities { var caps types.Capabilities - // For devicemapper disable support for filesystem sharing - caps.SetFsSharingUnsupported() caps.SetBlockDeviceSupport() caps.SetBlockDeviceHotplugSupport() diff --git a/virtcontainers/fc.go b/virtcontainers/fc.go index 26a60cb2c..d2e39af16 100644 --- a/virtcontainers/fc.go +++ b/virtcontainers/fc.go @@ -1065,7 +1065,6 @@ func (fc *firecracker) capabilities() types.Capabilities { span, _ := fc.trace("capabilities") defer span.Finish() var caps types.Capabilities - caps.SetFsSharingUnsupported() caps.SetBlockDeviceHotplugSupport() return caps diff --git a/virtcontainers/qemu_amd64.go b/virtcontainers/qemu_amd64.go index 69ceb4f51..1a5b26693 100644 --- a/virtcontainers/qemu_amd64.go +++ b/virtcontainers/qemu_amd64.go @@ -119,6 +119,7 @@ func (q *qemuAmd64) capabilities() types.Capabilities { } caps.SetMultiQueueSupport() + caps.SetFsSharingSupport() return caps } diff --git a/virtcontainers/qemu_arch_base.go b/virtcontainers/qemu_arch_base.go index a2af89f8b..9d72dd09f 100644 --- a/virtcontainers/qemu_arch_base.go +++ b/virtcontainers/qemu_arch_base.go @@ -271,6 +271,7 @@ func (q *qemuArchBase) capabilities() types.Capabilities { var caps types.Capabilities caps.SetBlockDeviceHotplugSupport() caps.SetMultiQueueSupport() + caps.SetFsSharingSupport() return caps } diff --git a/virtcontainers/types/capabilities.go b/virtcontainers/types/capabilities.go index fbd86a620..28772f1b7 100644 --- a/virtcontainers/types/capabilities.go +++ b/virtcontainers/types/capabilities.go @@ -9,7 +9,7 @@ const ( blockDeviceSupport = 1 << iota blockDeviceHotplugSupport multiQueueSupport - fsSharingUnsupported + fsSharingSupported ) // Capabilities describe a virtcontainers hypervisor capabilities @@ -50,10 +50,10 @@ func (caps *Capabilities) SetMultiQueueSupport() { // IsFsSharingSupported tells if an hypervisor supports host filesystem sharing. func (caps *Capabilities) IsFsSharingSupported() bool { - return caps.flags&fsSharingUnsupported == 0 + return caps.flags&fsSharingSupported != 0 } // SetFsSharingUnsupported sets the host filesystem sharing capability to true. -func (caps *Capabilities) SetFsSharingUnsupported() { - caps.flags |= fsSharingUnsupported +func (caps *Capabilities) SetFsSharingSupport() { + caps.flags |= fsSharingSupported } diff --git a/virtcontainers/types/capabilities_test.go b/virtcontainers/types/capabilities_test.go index 36b7c3e6c..375cd8ce9 100644 --- a/virtcontainers/types/capabilities_test.go +++ b/virtcontainers/types/capabilities_test.go @@ -30,7 +30,7 @@ func TestBlockDeviceHotplugCapability(t *testing.T) { func TestFsSharingCapability(t *testing.T) { var caps Capabilities - assert.True(t, caps.IsFsSharingSupported()) - caps.SetFsSharingUnsupported() assert.False(t, caps.IsFsSharingSupported()) + caps.SetFsSharingSupport() + assert.True(t, caps.IsFsSharingSupported()) }