]> git.kaiwu.me - nginx.git/commitdiff
fix case when errors are not cached,
authorIgor Sysoev <igor@sysoev.ru>
Thu, 13 Mar 2008 12:59:25 +0000 (12:59 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 13 Mar 2008 12:59:25 +0000 (12:59 +0000)
and a file was not used often enough to keep open
and it has been removed before it was kept open

src/core/ngx_open_file_cache.c

index abd0e2ae96a339ae1be6f8cf0cb03892b8848d6a..6bb6fd2520064c1e78b844e9261bb121d4c0d76b 100644 (file)
@@ -411,9 +411,11 @@ failed:
 
         cache->current--;
 
-        if (ngx_close_file(file->fd) == NGX_FILE_ERROR) {
-            ngx_log_error(NGX_LOG_ALERT, pool->log, ngx_errno,
-                          ngx_close_file_n " \"%s\" failed", file->name);
+        if (of->fd != NGX_INVALID_FILE) {
+            if (ngx_close_file(file->fd) == NGX_FILE_ERROR) {
+                ngx_log_error(NGX_LOG_ALERT, pool->log, ngx_errno,
+                              ngx_close_file_n " \"%s\" failed", file->name);
+            }
         }
 
         ngx_free(file->name);