Annotation of embedaddon/rsync/patches/soften-links.diff, revision 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>