From: Wayne Davison Date: Mon, 30 May 2011 15:24:27 +0000 (-0700) Subject: Fix unwritable directory issue due to misordered chmod call. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/cb0db58fb30d05a8d050d22849aeb1b8f1507fbc Fix unwritable directory issue due to misordered chmod call. --- diff --git a/generator.c b/generator.c index 326ccd88..cd7abda2 100644 --- a/generator.c +++ b/generator.c @@ -1354,6 +1354,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } } +#ifdef SUPPORT_XATTRS + if (preserve_xattrs && statret == 1) + copy_xattrs(fnamecmpbuf, fname); +#endif + if (set_file_attrs(fname, file, real_ret ? NULL : &real_sx, NULL, 0) + && INFO_GTE(NAME, 1) && code != FNONE && f_out != -1) + rprintf(code, "%s/\n", fname); + /* We need to ensure that the dirs in the transfer have writable * permissions during the time we are putting files within them. * This is then fixed after the transfer is done. */ @@ -1369,14 +1377,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } #endif -#ifdef SUPPORT_XATTRS - if (preserve_xattrs && statret == 1) - copy_xattrs(fnamecmpbuf, fname); -#endif - if (set_file_attrs(fname, file, real_ret ? NULL : &real_sx, NULL, 0) - && INFO_GTE(NAME, 1) && code != FNONE && f_out != -1) - rprintf(code, "%s/\n", fname); - if (real_ret != 0 && one_file_system) real_sx.st.st_dev = filesystem_dev; if (inc_recurse) {