From 700a779824c2d83ba1f8c7278f20863dce5ea3e1 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Sun, 15 Nov 2009 09:16:58 +0000 Subject: [PATCH] fix posix_fadvise() error handling --- src/os/unix/ngx_files.c | 20 ++++++++++++++++++++ src/os/unix/ngx_files.h | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index 2264cc13e..0ef083824 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -402,6 +402,26 @@ ngx_unlock_fd(ngx_fd_t fd) } +#if (NGX_HAVE_POSIX_FADVISE) + +ngx_int_t +ngx_read_ahead(ngx_fd_t fd, size_t n) +{ + int err; + + err = posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); + + if (err == 0) { + return 0; + } + + ngx_set_errno(err); + return NGX_FILE_ERROR; +} + +#endif + + #if (NGX_HAVE_O_DIRECT) ngx_int_t diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 2efd24778..ccaf44a93 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -264,7 +264,7 @@ ngx_err_t ngx_unlock_fd(ngx_fd_t fd); #define NGX_HAVE_READ_AHEAD 1 -#define ngx_read_ahead(fd, n) posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL) +ngx_int_t ngx_read_ahead(ngx_fd_t fd, size_t n); #define ngx_read_ahead_n "posix_fadvise(POSIX_FADV_SEQUENTIAL)" #else