Explorar o código

applyLayer() use btrfs reflinks if availible

We use the new file copy helper which uses btrfs reflinks if availible.
Alexander Larsson %!s(int64=12) %!d(string=hai) anos
pai
achega
062a2b32e9
Modificáronse 1 ficheiros con 6 adicións e 2 borrados
  1. 6 2
      image.go

+ 6 - 2
image.go

@@ -284,12 +284,16 @@ func (image *Image) applyLayer(layer, target string) error {
 				}
 				dstFile := os.NewFile(uintptr(fd), targetPath)
 				srcFile, err := os.Open(srcPath)
-				_, err = io.Copy(dstFile, srcFile)
 				if err != nil {
+					_ = dstFile.Close()
 					return err
 				}
-				_ = srcFile.Close()
+				err = CopyFile(dstFile, srcFile)
 				_ = dstFile.Close()
+				_ = srcFile.Close()
+				if err != nil {
+					return err
+				}
 			} else {
 				return fmt.Errorf("Unknown type for file %s", srcPath)
 			}