[SCM] SAMBA-CTDB repository - branch v3-2-ctdb updated - build_3.2.3_ctdb.50-65-g952c07e

Michael Adam obnox at samba.org
Mon Nov 24 21:26:57 GMT 2008


The branch, v3-2-ctdb has been updated
       via  952c07ea24aa120eaaace2ab623b13211d75961a (commit)
      from  4a23a36961b2f5189a03c9fd2b1c65bd4f2e5cbf (commit)

http://gitweb.samba.org/?p=obnox/samba-ctdb.git;a=shortlog;h=v3-2-ctdb


- Log -----------------------------------------------------------------
commit 952c07ea24aa120eaaace2ab623b13211d75961a
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Nov 18 10:58:48 2008 -0800

    Re-structure Volker's patch to "Fix trans2findfirst for the large directory optimization". Makes the change clearer.
    Jeremy.
    (cherry picked from commit 71878cb566aa9edeb85ac134a1ad60cfbc2927fe)
    
    Signed-off-by: Michael Adam <obnox at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source/smbd/filename.c |   47 +++++++++++++++++++++--------------------------
 1 files changed, 21 insertions(+), 26 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/filename.c b/source/smbd/filename.c
index 3eb2d63..392264b 100644
--- a/source/smbd/filename.c
+++ b/source/smbd/filename.c
@@ -194,30 +194,39 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
 		return result;
 	}
 
+	if (!(name = talloc_strdup(ctx, orig_path))) {
+		DEBUG(0, ("talloc_strdup failed\n"));
+		return NT_STATUS_NO_MEMORY;
+	}
+
+	/*
+	 * Large directory fix normalization. If we're case sensitive, and
+	 * the case preserving parameters are set to "no", normalize the case of
+	 * the incoming filename from the client WHETHER IT EXISTS OR NOT !
+	 * This is in conflict with the current (3.0.20) man page, but is
+	 * what people expect from the "large directory howto". I'll update
+	 * the man page. Thanks to jht at samba.org for finding this. JRA.
+	 */
+
+	if (conn->case_sensitive && !conn->case_preserve &&
+			!conn->short_case_preserve) {
+		strnorm(name, lp_defaultcase(SNUM(conn)));
+	}
+
 	/*
 	 * Ensure saved_last_component is valid even if file exists.
 	 */
 
 	if(pp_saved_last_component) {
-		end = strrchr_m(orig_path, '/');
+		end = strrchr_m(name, '/');
 		if (end) {
 			*pp_saved_last_component = talloc_strdup(ctx, end + 1);
 		} else {
 			*pp_saved_last_component = talloc_strdup(ctx,
-							orig_path);
-		}
-		if (conn->case_sensitive && !conn->case_preserve &&
-		    !conn->short_case_preserve) {
-			strnorm(*pp_saved_last_component,
-				lp_defaultcase(SNUM(conn)));
+							name);
 		}
 	}
 
-	if (!(name = talloc_strdup(ctx, orig_path))) {
-		DEBUG(0, ("talloc_strdup failed\n"));
-		return NT_STATUS_NO_MEMORY;
-	}
-
 	if (!lp_posix_pathnames()) {
 		stream = strchr_m(name, ':');
 
@@ -232,20 +241,6 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
 		}
 	}
 
-	/*
-	 * Large directory fix normalization. If we're case sensitive, and
-	 * the case preserving parameters are set to "no", normalize the case of
-	 * the incoming filename from the client WHETHER IT EXISTS OR NOT !
-	 * This is in conflict with the current (3.0.20) man page, but is
-	 * what people expect from the "large directory howto". I'll update
-	 * the man page. Thanks to jht at samba.org for finding this. JRA.
-	 */
-
-	if (conn->case_sensitive && !conn->case_preserve &&
-			!conn->short_case_preserve) {
-		strnorm(name, lp_defaultcase(SNUM(conn)));
-	}
-
 	start = name;
 
 	/* If we're providing case insentive semantics or


-- 
SAMBA-CTDB repository


More information about the samba-cvs mailing list