3 I run one of the debian mirrors, and I had to write this patch because
4 my archive is split between more than one disk. Would you accept a more
5 polished version of this patch for inclusion in rsync?
7 To use this patch, run these commands for a successful build:
9 patch -p1 <patches/soften-links.diff
10 ./configure (optional if already run)
13 based-on: 55b2a06812e39f15f52e92b979600cb82be210cb
14 diff --git a/syscall.c b/syscall.c
17 @@ -136,13 +136,18 @@ ssize_t do_readlink(const char *path, char *buf, size_t bufsiz)
18 #if defined HAVE_LINK || defined HAVE_LINKAT
19 int do_link(const char *old_path, const char *new_path)
23 if (dry_run) return 0;
24 RETURN_ERROR_IF_RO_OR_LO;
26 - return linkat(AT_FDCWD, old_path, AT_FDCWD, new_path, 0);
27 + st = linkat(AT_FDCWD, old_path, AT_FDCWD, new_path, 0);
29 - return link(old_path, new_path);
30 + st = link(old_path, new_path);
32 + if (/*soften_links &&*/ st != 0 && errno == EXDEV)
33 + st = symlink(old_path, new_path);