aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Batts <vbatts@hashbangbash.com>2015-08-03 12:26:38 -0400
committerIan Lance Taylor <iant@golang.org>2015-08-04 17:34:43 +0000
commita1d093d95dfb888e55f960943bd3ad3d181ec743 (patch)
treeeb4100ebdc0c856e91b5ca1ab354ec01df017dca
parentbc5a6ce6bef1457e2bc8e90fd7f93e0e22a03128 (diff)
downloadgo-a1d093d95dfb888e55f960943bd3ad3d181ec743.tar.gz
go-a1d093d95dfb888e55f960943bd3ad3d181ec743.zip
archive/tar: don't treat multiple file system links as a tar hardlink
Do not assume that if stat shows multiple links that we should mark the file as a hardlink in the tar format. If the hardlink link was not referenced, this caused a link to "/". On an overlay file system, all files have multiple links. The caller must keep the inode references and set TypeLink, Size = 0, and LinkName themselves. Change-Id: I873b8a235bc8f8fbb271db74ee54232da36ca013 Reviewed-on: https://go-review.googlesource.com/13045 Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r--src/archive/tar/stat_unix.go5
1 files changed, 0 insertions, 5 deletions
diff --git a/src/archive/tar/stat_unix.go b/src/archive/tar/stat_unix.go
index 27d112f665..cb843db4cf 100644
--- a/src/archive/tar/stat_unix.go
+++ b/src/archive/tar/stat_unix.go
@@ -28,10 +28,5 @@ func statUnix(fi os.FileInfo, h *Header) error {
h.AccessTime = statAtime(sys)
h.ChangeTime = statCtime(sys)
// TODO(bradfitz): major/minor device numbers?
- if fi.Mode().IsRegular() && sys.Nlink > 1 {
- h.Typeflag = TypeLink
- h.Size = 0
- // TODO(vbatts): Linkname?
- }
return nil
}