34 lines
1.2 KiB
Diff
34 lines
1.2 KiB
Diff
commit a1d093d95dfb888e55f960943bd3ad3d181ec743
|
|
Author: Vincent Batts <vbatts@hashbangbash.com>
|
|
Date: Mon Aug 3 12:26:38 2015 -0400
|
|
|
|
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>
|
|
|
|
diff --git a/src/archive/tar/stat_unix.go b/src/archive/tar/stat_unix.go
|
|
index 27d112f..cb843db 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
|
|
}
|