summaryrefslogtreecommitdiffstats
path: root/modules/cache/mod_file_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/cache/mod_file_cache.c')
-rw-r--r--modules/cache/mod_file_cache.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/modules/cache/mod_file_cache.c b/modules/cache/mod_file_cache.c
index 646d77bf0b..37209e2744 100644
--- a/modules/cache/mod_file_cache.c
+++ b/modules/cache/mod_file_cache.c
@@ -249,14 +249,12 @@ static void cache_the_file(cmd_parms *cmd, const char *filename, int mmap)
return;
}
apr_file_close(fd);
- /* We want to cache an apr_mmap_t that's marked as "non-owner"
- * to pass to each request so that mmap_setaside()'s call to
- * apr_mmap_dup() will never try to move the apr_mmap_t to a
- * different pool. This apr_mmap_t is already going to live
- * longer than any request, but mmap_setaside() has no way to
- * know that because it's allocated out of cmd->pool,
- * which is disjoint from r->pool.
- */
+ /* We want to cache a duplicate apr_mmap_t to pass to each
+ * request so that nothing in the request will ever think that
+ * it's allowed to delete the mmap, since the "refcount" will
+ * never reach zero. */
+ /* XXX: the transfer_ownership flag on this call
+ * will go away soon.. it's ignored right now. */
apr_mmap_dup(&new_file->mm, mm, cmd->pool, 0);
new_file->is_mmapped = TRUE;
}