diff options
| author | 2011-10-03 17:38:55 +0000 | |
|---|---|---|
| committer | 2011-10-03 17:38:55 +0000 | |
| commit | 8b413955cdde85d1ba40a94ad03676cb45c42249 (patch) | |
| tree | df549078432b234c875e28dfb347dfb284645777 /usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c | |
| parent | sync after mono module change (diff) | |
| download | wireguard-openbsd-8b413955cdde85d1ba40a94ad03676cb45c42249.tar.xz wireguard-openbsd-8b413955cdde85d1ba40a94ad03676cb45c42249.zip | |
update to nginx-1.0.8 which includes many bugfixes
for a complete list please check the CHANGES file
Diffstat (limited to 'usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c')
| -rw-r--r-- | usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c b/usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c index 72875ca0101..d31c4a0641d 100644 --- a/usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c +++ b/usr.sbin/nginx/src/os/unix/ngx_linux_aio_read.c @@ -16,7 +16,7 @@ extern aio_context_t ngx_aio_ctx; static void ngx_file_aio_event_handler(ngx_event_t *ev); -static long +static int io_submit(aio_context_t ctx, long n, struct iocb **paiocb) { return syscall(SYS_io_submit, ctx, n, paiocb); @@ -27,7 +27,7 @@ ssize_t ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, ngx_pool_t *pool) { - long n; + ngx_err_t err; struct iocb *piocb[1]; ngx_event_t *ev; ngx_event_aio_t *aio; @@ -74,6 +74,10 @@ ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, } ngx_set_errno(-aio->res); + + ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, + "aio read \"%s\" failed", file->name.data); + return NGX_ERROR; } @@ -92,9 +96,7 @@ ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, piocb[0] = &aio->aiocb; - n = io_submit(ngx_aio_ctx, 1, piocb); - - if (n == 1) { + if (io_submit(ngx_aio_ctx, 1, piocb) == 1) { ev->active = 1; ev->ready = 0; ev->complete = 0; @@ -102,16 +104,16 @@ ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, return NGX_AGAIN; } - n = -n; + err = ngx_errno; - if (n == NGX_EAGAIN) { + if (err == NGX_EAGAIN) { return ngx_read_file(file, buf, size, offset); } - ngx_log_error(NGX_LOG_CRIT, file->log, n, + ngx_log_error(NGX_LOG_CRIT, file->log, err, "io_submit(\"%V\") failed", &file->name); - if (n == NGX_ENOSYS) { + if (err == NGX_ENOSYS) { ngx_file_aio = 0; return ngx_read_file(file, buf, size, offset); } |
