فهرست منبع

applyLayer() use btrfs reflinks if availible

We use the new file copy helper which uses btrfs reflinks if availible.
Alexander Larsson 12 سال پیش
والد
کامیت
062a2b32e9
1فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  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)
 			}