summaryrefslogtreecommitdiff
path: root/lib/tar
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-12-19 16:31:39 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-12-22 22:07:44 +0100
commitb16616ef092e8cd97674aac3380c5d7c600d7c61 (patch)
tree87f5042e0f7e7c701b3a67ed264ffddfe03cd864 /lib/tar
parent1466f1f8571aca423156ee7ef4094a0c082f88d7 (diff)
Add hard link support to gensquashfs and tar2sqfs
In libtar, set a special flag if the header is actually a hard link. In tar2sqfs, create a hard link node and skip the rest for hard links. Also refues to set the root attributes from a hard link, it may refere to a node that we have missed earlier, there is nothing else that we can do here. In fstree_from_file, add a "link" command for adding hard links. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/tar')
-rw-r--r--lib/tar/read_header.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/tar/read_header.c b/lib/tar/read_header.c
index 7d209ae..f82f9a5 100644
--- a/lib/tar/read_header.c
+++ b/lib/tar/read_header.c
@@ -345,8 +345,7 @@ static int decode_header(const tar_header_t *hdr, unsigned int set_by_pax,
out->sb.st_mode |= S_IFREG;
break;
case TAR_TYPE_LINK:
- /* XXX: hard links are not support yet */
- out->sb.st_mode = S_IFLNK | 0777;
+ out->is_hard_link = true;
break;
case TAR_TYPE_SLINK:
out->sb.st_mode = S_IFLNK | 0777;