File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / patches / soften-links.diff
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:32:36 2021 UTC (4 years ago) by misho
Branches: rsync, MAIN
CVS tags: v3_2_3, HEAD
rsync 3.2.3

    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>