diff options
author | Valentin Bartenev <vbart@nginx.com> | 2015-11-17 19:01:41 +0300 |
---|---|---|
committer | Valentin Bartenev <vbart@nginx.com> | 2015-11-17 19:01:41 +0300 |
commit | 9ef4b63328f534a647b367be1bce3b5a159e7c32 (patch) | |
tree | 36e0e561795724da57a345ee3e0e597e8ac6ea91 /src | |
parent | 3aef20d257b5afb385da7fa85dfeed89cf9314ea (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/os/unix/ngx_files.c | 1 |
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; |