]> granicus.if.org Git - apache/commitdiff
mod_dav_fs: Retrieve minimal system information about directory
authorJeff Trawick <trawick@apache.org>
Thu, 7 Aug 2008 15:12:00 +0000 (15:12 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 7 Aug 2008 15:12:00 +0000 (15:12 +0000)
entries when walking a DAV fs, resolving a performance degradation on
Windows.

PR: 45464

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@683626 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/dav/fs/repos.c

diff --git a/CHANGES b/CHANGES
index ec8aebb18dcd7ce29854a93a98cb16f2f82f6e9c..76585ba2d41698119d31b81142816166a4a3e3e8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,10 @@
 Changes with Apache 2.3.0
 [ When backported to 2.2.x, remove entry from this file ]
 
+  *) mod_dav_fs: Retrieve minimal system information about directory 
+     entries when walking a DAV fs, resolving a performance degradation on 
+     Windows.  PR 45464.  [Jeff Trawick]
+
   *) mod_cgid: Pass along empty command line arguments from an ISINDEX
      query that has consecutive '+' characters in the QUERY_STRING, 
      matching the behavior of mod_cgi.
index 8b60f37dec511b90ed315f543fe733ae1615478d..48d481a30ad97faf8887d914ce23192d933bc92a 100644 (file)
@@ -1475,10 +1475,8 @@ static dav_error * dav_fs_walker(dav_fs_walker_context *fsctx, int depth)
         /* append this file onto the path buffer (copy null term) */
         dav_buffer_place_mem(pool, &fsctx->path1, dirent.name, len + 1, 0);
 
-
-        /* ### Optimize me, dirent can give us what we need! */
         status = apr_stat(&fsctx->info1.finfo, fsctx->path1.buf,
-                          APR_FINFO_NORM | APR_FINFO_LINK, pool);
+                          APR_FINFO_TYPE | APR_FINFO_LINK, pool);
         if (status != APR_SUCCESS && status != APR_INCOMPLETE) {
             /* woah! where'd it go? */
             /* ### should have a better error here */