summaryrefslogtreecommitdiff
path: root/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch')
-rw-r--r--system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch88
1 files changed, 0 insertions, 88 deletions
diff --git a/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch b/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch
deleted file mode 100644
index 60d95db7c9..0000000000
--- a/system/docker/patches/0001-devicemapper-fix-zero-sized-field-access.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From f7236a195c84687edb74fec28b6c4cc98e34185c Mon Sep 17 00:00:00 2001
-From: Vincent Batts <vbatts@redhat.com>
-Date: Fri, 7 Aug 2015 10:18:20 -0400
-Subject: [PATCH 1/4] devicemapper: fix zero-sized field access
-
-Fixes: #15279
-
-Due to
-https://github.com/golang/go/commit/7904946eeb35faece61bbf6f5b3cc8be2f519c17
-the devices field is dropped.
-
-This solution works on go1.4 and go1.5
-
-Signed-off-by: Vincent Batts <vbatts@redhat.com>
----
- daemon/graphdriver/devmapper/deviceset.go | 14 +++++++++-----
- pkg/devicemapper/devmapper_wrapper.go | 18 +++++++++++++++---
- 2 files changed, 24 insertions(+), 8 deletions(-)
-
-diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go
-index 2eee330..a80736a 100644
---- a/daemon/graphdriver/devmapper/deviceset.go
-+++ b/daemon/graphdriver/devmapper/deviceset.go
-@@ -1482,12 +1482,16 @@ func (devices *DeviceSet) deactivatePool() error {
- if err != nil {
- return err
- }
-- if d, err := devicemapper.GetDeps(devname); err == nil {
-- // Access to more Debug output
-- logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d)
-+
-+ if devinfo.Exists == 0 {
-+ return nil
- }
-- if devinfo.Exists != 0 {
-- return devicemapper.RemoveDevice(devname)
-+ if err := devicemapper.RemoveDevice(devname); err != nil {
-+ return err
-+ }
-+
-+ if d, err := devicemapper.GetDeps(devname); err == nil {
-+ logrus.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count)
- }
-
- return nil
-diff --git a/pkg/devicemapper/devmapper_wrapper.go b/pkg/devicemapper/devmapper_wrapper.go
-index 87c2003..44ca772 100644
---- a/pkg/devicemapper/devmapper_wrapper.go
-+++ b/pkg/devicemapper/devmapper_wrapper.go
-@@ -38,7 +38,10 @@ static void log_with_errno_init()
- */
- import "C"
-
--import "unsafe"
-+import (
-+ "reflect"
-+ "unsafe"
-+)
-
- type (
- CDmTask C.struct_dm_task
-@@ -184,12 +187,21 @@ func dmTaskGetDepsFct(task *CDmTask) *Deps {
- if Cdeps == nil {
- return nil
- }
-+
-+ // golang issue: https://github.com/golang/go/issues/11925
-+ hdr := reflect.SliceHeader{
-+ Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))),
-+ Len: int(Cdeps.count),
-+ Cap: int(Cdeps.count),
-+ }
-+ devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
-+
- deps := &Deps{
- Count: uint32(Cdeps.count),
- Filler: uint32(Cdeps.filler),
- }
-- for _, device := range Cdeps.device {
-- deps.Device = append(deps.Device, (uint64)(device))
-+ for _, device := range devices {
-+ deps.Device = append(deps.Device, uint64(device))
- }
- return deps
- }
---
-2.4.3
-