diff src/os/unix/ngx_files.c @ 154:eac26585476e

nginx-0.0.1-2003-10-22-11:05:29 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 22 Oct 2003 07:05:29 +0000
parents 869b10be682f
children c42be4185301
line wrap: on
line diff
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -77,15 +77,15 @@ ssize_t ngx_write_chain_to_file(ngx_file
         ce = ce->next;
     }
 
-    if (lseek(file->fd, offset, SEEK_SET) == -1) {
-        ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
-        return NGX_ERROR;
+    if (file->offset != offset) {
+        if (lseek(file->fd, offset, SEEK_SET) == -1) {
+            ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
+            return NGX_ERROR;
+        }
     }
 
     n = writev(file->fd, (struct iovec *) io.elts, io.nelts);
 
-    ngx_destroy_array(&io);
-
     if (n == -1) {
         ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "writev() failed");
         return NGX_ERROR;