Browse Source

applyLayer() use btrfs reflinks if availible

We use the new file copy helper which uses btrfs reflinks if availible.
Alexander Larsson 12 năm trước cách đây
mục cha
commit
062a2b32e9
1 tập tin đã thay đổi với 6 bổ sung2 xóa
  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)
 			}