Annotation of embedaddon/rsync/patches/soften-links.diff, revision 1.1.1.1

1.1       misho       1: Marco d'Itri wrote:
                      2: 
                      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?
                      6: 
                      7: To use this patch, run these commands for a successful build:
                      8: 
                      9:     patch -p1 <patches/soften-links.diff
                     10:     ./configure                           (optional if already run)
                     11:     make
                     12: 
                     13: based-on: e94bad1c156fc3910f24e2b3b71a81b0b0bdeb70
                     14: diff --git a/syscall.c b/syscall.c
                     15: --- a/syscall.c
                     16: +++ b/syscall.c
                     17: @@ -132,13 +132,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)
                     20:  {
                     21: +      int st;
                     22: +
                     23:        if (dry_run) return 0;
                     24:        RETURN_ERROR_IF_RO_OR_LO;
                     25:  #ifdef HAVE_LINKAT
                     26: -      return linkat(AT_FDCWD, old_path, AT_FDCWD, new_path, 0);
                     27: +      st = linkat(AT_FDCWD, old_path, AT_FDCWD, new_path, 0);
                     28:  #else
                     29: -      return link(old_path, new_path);
                     30: +      st = link(old_path, new_path);
                     31:  #endif
                     32: +      if (/*soften_links &&*/ st != 0 && errno == EXDEV)
                     33: +              st = symlink(old_path, new_path);
                     34: +      return st;
                     35:  }
                     36:  #endif
                     37:  

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>