You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Davi Arnaut <da...@haxent.com.br> on 2006/09/20 04:34:01 UTC

[patch 08/16] dont delete empty cache directories

Don't delete empty cache directories, it is too expensive and unnecessary.
Later they can be removed with htcacheclean.

Index: modules/cache/mod_disk_cache.c
===================================================================
--- modules/cache/mod_disk_cache.c.orig
+++ modules/cache/mod_disk_cache.c
@@ -579,45 +579,6 @@
         }
     }
 
-    /* now delete directories as far as possible up to our cache root */
-    if (dobj->root) {
-        const char *str_to_copy;
-
-        str_to_copy = dobj->hdrsfile ? dobj->hdrsfile : dobj->datafile;
-        if (str_to_copy) {
-            char *dir, *slash, *q;
-
-            dir = apr_pstrdup(p, str_to_copy);
-
-            /* remove filename */
-            slash = strrchr(dir, '/');
-            *slash = '\0';
-
-            /*
-             * now walk our way back to the cache root, delete everything
-             * in the way as far as possible
-             *
-             * Note: due to the way we constructed the file names in
-             * header_file and data_file, we are guaranteed that the
-             * cache_root is suffixed by at least one '/' which will be
-             * turned into a terminating null by this loop.  Therefore,
-             * we won't either delete or go above our cache root.
-             */
-            for (q = dir + dobj->root_len; *q ; ) {
-                 ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, NULL,
-                              "disk_cache: Deleting directory %s from cache",
-                              dir);
-
-                 rc = apr_dir_remove(dir, p);
-                 if (rc != APR_SUCCESS && !APR_STATUS_IS_ENOENT(rc)) {
-                    break;
-                 }
-                 slash = strrchr(q, '/');
-                 *slash = '\0';
-            }
-        }
-    }
-
     return OK;
 }
 

--