From: Wayne Davison Date: Sun, 19 Jan 2014 22:59:43 +0000 (-0800) Subject: Undo the hard-link xattr optimization in 78286a03. X-Git-Tag: v3.1.1pre1~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=740551d6576f28b42bc53c3e7e7e150adafa20e4;p=thirdparty%2Frsync.git Undo the hard-link xattr optimization in 78286a03. I'm backing out the xattr optimization that was put in to try to make xattr data sending more optimal on hard-linked files. The code was causing hard-to-reproduce bugs, and it's better to get things done fully & correctly over fully optimally. --- diff --git a/generator.c b/generator.c index b2ca2e05..0f77481e 100644 --- a/generator.c +++ b/generator.c @@ -550,9 +550,7 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre #ifdef SUPPORT_XATTRS if (preserve_xattrs && do_xfers && iflags & (ITEM_REPORT_XATTR|ITEM_TRANSFER)) { - int fd = iflags & ITEM_REPORT_XATTR - && (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE)) - ? sock_f_out : -1; + int fd = iflags & ITEM_REPORT_XATTR ? sock_f_out : -1; send_xattr_request(NULL, file, fd); } #endif diff --git a/receiver.c b/receiver.c index 1e064d9d..48540d2e 100644 --- a/receiver.c +++ b/receiver.c @@ -580,16 +580,14 @@ int recv_files(int f_in, int f_out, char *local_name) rprintf(FINFO, "recv_files(%s)\n", fname); #ifdef SUPPORT_XATTRS - if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers - && (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) + if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers) recv_xattr_request(file, f_in); #endif if (!(iflags & ITEM_TRANSFER)) { maybe_log_item(file, iflags, itemizing, xname); #ifdef SUPPORT_XATTRS - if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers - && !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE)) + if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers) set_file_attrs(fname, file, NULL, fname, 0); #endif if (iflags & ITEM_IS_NEW) { diff --git a/sender.c b/sender.c index 12242abe..5ecb6eac 100644 --- a/sender.c +++ b/sender.c @@ -177,8 +177,7 @@ static void write_ndx_and_attrs(int f_out, int ndx, int iflags, if (iflags & ITEM_XNAME_FOLLOWS) write_vstring(f_out, buf, len); #ifdef SUPPORT_XATTRS - if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers - && (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE))) + if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers) send_xattr_request(fname, file, f_out); #endif }