]> Cypherpunks repositories - gostls13.git/commitdiff
archive/tar: don't treat multiple file system links as a tar hardlink
authorVincent Batts <vbatts@hashbangbash.com>
Mon, 3 Aug 2015 16:26:38 +0000 (12:26 -0400)
committerIan Lance Taylor <iant@golang.org>
Tue, 4 Aug 2015 17:34:43 +0000 (17:34 +0000)
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>
src/archive/tar/stat_unix.go

index 27d112f665cb5f46adbc669d4a1fc495d4c1fe5f..cb843db4cfd65815830128cc0aa285dee36f7123 100644 (file)
@@ -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
 }