embed sentinel
diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c
index d518f4b..3b3e628 100644
--- a/src/core/ngx_open_file_cache.c
+++ b/src/core/ngx_open_file_cache.c
@@ -33,7 +33,6 @@
 ngx_open_file_cache_t *
 ngx_open_file_cache_init(ngx_pool_t *pool, ngx_uint_t max, time_t inactive)
 {
-    ngx_rbtree_node_t      *sentinel;
     ngx_pool_cleanup_t     *cln;
     ngx_open_file_cache_t  *cache;
 
@@ -48,12 +47,7 @@
     cache->list_tail.prev = &cache->list_head;
     cache->list_tail.next = NULL;
 
-    sentinel = ngx_palloc(pool, sizeof(ngx_rbtree_node_t));
-    if (sentinel == NULL) {
-        return NULL;
-    }
-
-    ngx_rbtree_init(&cache->rbtree, sentinel,
+    ngx_rbtree_init(&cache->rbtree, &cache->sentinel,
                     ngx_open_file_cache_rbtree_insert_value);
 
     cache->current = 0;
diff --git a/src/core/ngx_open_file_cache.h b/src/core/ngx_open_file_cache.h
index cc0d899..272bcb5 100644
--- a/src/core/ngx_open_file_cache.h
+++ b/src/core/ngx_open_file_cache.h
@@ -63,6 +63,7 @@
 
 typedef struct {
     ngx_rbtree_t             rbtree;
+    ngx_rbtree_node_t        sentinel;
     ngx_cached_open_file_t   list_head;
     ngx_cached_open_file_t   list_tail;