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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>

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

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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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

Reply via email to