[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug in handling hard links in bind-mounted directories
From: |
Derek Pressnall |
Subject: |
Bug in handling hard links in bind-mounted directories |
Date: |
Thu, 30 Dec 2021 14:11:11 -0600 |
It appears that tar doesn't always recognize (and treat as hard links) files
that are the same file, but appear in two different directories from bind
mounts.
$ sudo mount -o bind /tmp/foo/bar /tmp/foo/baz
$ echo "test data" >/tmp/foo/bar/bleh
$ stat --printf "%d %i %n\n" /tmp/foo/bar/bleh /tmp/foo/baz/bleh
51 97105 /tmp/foo/bar/bleh
51 97105 /tmp/foo/baz/bleh
Notice the same device and inode number
Test 1 -- using tar with a single file path:
$ tar -cf /tmp/testing.tar /tmp/foo
$ tar -tvf /tmp/testing.tar
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/baz/
-rw-rw-r-- derekp/derekp 10 2021-12-29 19:00 tmp/foo/baz/bleh
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/bar/
-rw-rw-r-- derekp/derekp 10 2021-12-29 19:00 tmp/foo/bar/bleh
Notice that "bleh" is repeated twice as regular files.
Test 2 -- adding a second path to the command line:
$ tar -cf /tmp/testing.tar /tmp/foo /tmp/test
$ tar -tvf /tmp/testing.tar
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/baz/
-rw-rw-r-- derekp/derekp 10 2021-12-29 19:00 tmp/foo/baz/bleh
drwxrwxr-x derekp/derekp 0 2021-12-29 18:59 tmp/foo/bar/
hrw-rw-r-- derekp/derekp 0 2021-12-29 19:00 tmp/foo/bar/bleh link
to tmp/foo/baz/bleh
-rw-rw-r-- derekp/derekp 0 2021-12-29 19:01 tmp/test
In this case it successfully recognizes /tmp/foo/bar/bleh as a hard link to
/tmp/foo/baz/bleh.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Bug in handling hard links in bind-mounted directories,
Derek Pressnall <=