In -pl mode, only hardlink regular files. I need to test

other implementations, but it's clear that dirs and symlinks,
at least, shouldn't be hardlinked.
This commit is contained in:
Tim Kientzle 2008-07-05 05:16:23 +00:00
parent 2ebfcda850
commit 0d35b0da0c

View File

@ -535,14 +535,16 @@ entry_to_archive(struct cpio *cpio, struct archive_entry *entry)
fprintf(stderr,"%s", destpath);
/*
* Obviously, this only gets invoked in pass mode, since
* option_link is nonsense otherwise. Note that we can't
* hardlink dirs, and that if a link operation fails (because
* of cross-device restrictions), we'll fall back to copy mode
* for that entry.
* Option_link only makes sense in pass mode and for
* regular files. Also note: if a link operation fails
* because of cross-device restrictions, we'll fall back
* to copy mode for that entry.
*
* TODO: Test other cpio implementations to see if they
* hard-link anything other than regular files here.
*/
if (cpio->option_link
&& archive_entry_filetype(entry) != AE_IFDIR)
&& archive_entry_filetype(entry) == AE_IFREG)
{
struct archive_entry *t;
/* Save the original entry in case we need it later. */