From ce61ff9c453702d45998e1ae1394dc44e9c5eb6a Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Fri, 21 Oct 2011 11:04:46 +0000 Subject: [PATCH] Fixed another return in unix ngx_write_chain_to_file(). Previous patch missed special case for one iovec, it needs total bytes written to be returned as well. --- src/os/unix/ngx_files.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index 4bfde44f4..ad26d2752 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -204,8 +204,15 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset, if (vec.nelts == 1) { iov = vec.elts; - return ngx_write_file(file, (u_char *) iov[0].iov_base, - iov[0].iov_len, offset); + + n = ngx_write_file(file, (u_char *) iov[0].iov_base, + iov[0].iov_len, offset); + + if (n == NGX_ERROR) { + return n; + } + + return total + n; } if (file->sys_offset != offset) {