Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 574316
Collapse All | Expand All

(-)docker-1.7.1/daemon/graphdriver/devmapper/deviceset.go (-6 / +7 lines)
Lines 1272-1285 Link Here
1272
	if err != nil {
1272
	if err != nil {
1273
		return err
1273
		return err
1274
	}
1274
	}
1275
	if d, err := devicemapper.GetDeps(devname); err == nil {
1275
	if devinfo.Exists == 0 {
1276
		// Access to more Debug output
1276
		return nil
1277
		logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d)
1277
 	}
1278
	if err := devicemapper.RemoveDevice(devname); err != nil {
1279
		return err
1278
	}
1280
	}
1279
	if devinfo.Exists != 0 {
1281
	if d, err := devicemapper.GetDeps(devname); err == nil {
1280
		return devicemapper.RemoveDevice(devname)
1282
		logrus.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count)
1281
	}
1283
	}
1282
1283
	return nil
1284
	return nil
1284
}
1285
}
1285
1286
(-)docker-1.7.1/pkg/devicemapper/devmapper_wrapper.go (-4 / +16 lines)
Lines 38-44 Link Here
38
*/
38
*/
39
import "C"
39
import "C"
40
40
41
import "unsafe"
41
import (
42
	"reflect"
43
	"unsafe"
44
)
42
45
43
type (
46
type (
44
	CDmTask C.struct_dm_task
47
	CDmTask C.struct_dm_task
Lines 184-196 Link Here
184
	if Cdeps == nil {
187
	if Cdeps == nil {
185
		return nil
188
		return nil
186
	}
189
	}
190
191
	// golang issue: https://github.com/golang/go/issues/11925
192
	hdr := reflect.SliceHeader{
193
		Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))),
194
		Len:  int(Cdeps.count),
195
		Cap:  int(Cdeps.count),
196
	}
197
	devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
198
187
	deps := &Deps{
199
	deps := &Deps{
188
		Count:  uint32(Cdeps.count),
200
		Count:  uint32(Cdeps.count),
189
		Filler: uint32(Cdeps.filler),
201
		Filler: uint32(Cdeps.filler),
190
	}
202
	}
191
	for _, device := range Cdeps.device {
203
	for _, device := range devices {
192
		deps.Device = append(deps.Device, (uint64)(device))
204
		deps.Device = append(deps.Device, uint64(device))
193
	}
205
 	}
194
	return deps
206
	return deps
195
}
207
}
196
208

Return to bug 574316