Blob Blame History Raw
From ba35ba06c9964d67fd7712f1b103e6d527f30c46 Mon Sep 17 00:00:00 2001
From: Wayne Davison <wayned@samba.org>
Date: Mon, 30 May 2011 08:24:27 -0700
Subject: [PATCH] Fix unwritable directory issue due to misordered chmod call.

---
 generator.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/generator.c b/generator.c
index 4f74597..88a762a 100644
--- a/generator.c
+++ b/generator.c
@@ -1523,6 +1523,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)
+		    && verbose && 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. */
@@ -1538,14 +1546,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)
-		    && verbose && 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) {
-- 
1.7.6.4