diff src/os/unix/ngx_files.c @ 191:71ce40b3c37b

nginx-0.0.1-2003-11-19-19:26:41 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 19 Nov 2003 16:26:41 +0000
parents 02a715e85df1
children 2357fa41738a
line wrap: on
line diff
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -30,10 +30,10 @@ ssize_t ngx_read_file(ngx_file_t *file, 
             ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
             return NGX_ERROR;
         }
+
+        file->sys_offset = offset;
     }
 
-    file->sys_offset = offset;
-
     n = read(file->fd, buf, size);
 
     if (n == -1) {
@@ -77,10 +77,10 @@ ssize_t ngx_write_file(ngx_file_t *file,
             ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
             return NGX_ERROR;
         }
+
+        file->sys_offset = offset;
     }
 
-    file->sys_offset = offset;
-
     n = write(file->fd, buf, size);
 
     if (n == -1) {
@@ -151,15 +151,15 @@ ssize_t ngx_write_chain_to_file(ngx_file
         return ngx_write_file(file, iov[0].iov_base, iov[0].iov_len, offset);
     }
 
-    if (file->offset != offset) {
+    if (file->sys_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;
         }
+
+        file->sys_offset = offset;
     }
 
-    file->sys_offset = offset;
-
     n = writev(file->fd, io.elts, io.nelts);
 
     if (n == -1) {