From 062a2b32e9500107841a52d3a63b9232a1cfde70 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 13 Sep 2013 16:36:32 +0200 Subject: [PATCH] applyLayer() use btrfs reflinks if availible We use the new file copy helper which uses btrfs reflinks if availible. --- image.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/image.go b/image.go index 2c16aeb6d4..7819873757 100644 --- a/image.go +++ b/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 + } + err = CopyFile(dstFile, srcFile) + _ = dstFile.Close() + _ = srcFile.Close() if err != nil { return err } - _ = srcFile.Close() - _ = dstFile.Close() } else { return fmt.Errorf("Unknown type for file %s", srcPath) }