summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2015-11-17 19:01:41 +0300
committerValentin Bartenev <vbart@nginx.com>2015-11-17 19:01:41 +0300
commit9ef4b63328f534a647b367be1bce3b5a159e7c32 (patch)
tree36e0e561795724da57a345ee3e0e597e8ac6ea91
parent3aef20d257b5afb385da7fa85dfeed89cf9314ea (diff)
Adjusted file->sys_offset after the write() syscall.
This fixes suboptimal behavior caused by surplus lseek() for sequential writes on systems without pwrite(). A consecutive read after write might result in an error on systems without pread() and pwrite(). Fortunately, at the moment there are no widely used systems without these syscalls.
-rw-r--r--src/os/unix/ngx_files.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index 417b598f..36b6b67c 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -226,6 +226,7 @@ ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
return NGX_ERROR;
}
+ file->sys_offset += n;
file->offset += n;
written += n;