mirror of
https://github.com/rwinkhart/go-winio.git
synced 2026-09-05 08:37:37 -04:00
Fix regression in DetachVhd
When opening a disk it for deatch using 'Version == 2' parameters it is required that the'accessMask == VirtualDiskAccessNone'. Also updates the virtual disk 'flag' parameter to match the set specified by the product when activating the layer. Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
This commit is contained in:
+7
-3
@@ -117,9 +117,13 @@ func CreateVhdx(path string, maxSizeInGb, blockSizeInMb uint32) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DetachVhd detaches a VHD attached at the given path.
|
// DetachVhd detaches a mounted container layer vhd found at `path`.
|
||||||
func DetachVhd(path string) error {
|
func DetachVhd(path string) error {
|
||||||
handle, err := OpenVirtualDisk(path, VirtualDiskAccessDetach, OpenVirtualDiskFlagNone)
|
handle, err := OpenVirtualDisk(
|
||||||
|
path,
|
||||||
|
VirtualDiskAccessNone,
|
||||||
|
OpenVirtualDiskFlagCachedIO|OpenVirtualDiskFlagIgnoreRelativeParentLocator)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -127,7 +131,7 @@ func DetachVhd(path string) error {
|
|||||||
return detachVirtualDisk(handle, 0, 0)
|
return detachVirtualDisk(handle, 0, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenVirtuaDisk obtains a handle to a VHD opened with supplied access mask and flags.
|
// OpenVirtualDisk obtains a handle to a VHD opened with supplied access mask and flags.
|
||||||
func OpenVirtualDisk(path string, accessMask VirtualDiskAccessMask, flag VirtualDiskFlag) (syscall.Handle, error) {
|
func OpenVirtualDisk(path string, accessMask VirtualDiskAccessMask, flag VirtualDiskFlag) (syscall.Handle, error) {
|
||||||
var (
|
var (
|
||||||
defaultType virtualStorageType
|
defaultType virtualStorageType
|
||||||
|
|||||||
Reference in New Issue
Block a user