aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-15 09:16:58 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-11-15 09:16:58 +0000
commit700a779824c2d83ba1f8c7278f20863dce5ea3e1 (patch)
treeb8b2cfece1215cf1c598fdbb51dd4b123e3f3c0b /src/os/unix
parentb13029c57c3011c6df10566278eb4d5255e592d2 (diff)
downloadnginx-700a779824c2d83ba1f8c7278f20863dce5ea3e1.tar.gz
nginx-700a779824c2d83ba1f8c7278f20863dce5ea3e1.zip
fix posix_fadvise() error handling
Diffstat (limited to 'src/os/unix')
-rw-r--r--src/os/unix/ngx_files.c20
-rw-r--r--src/os/unix/ngx_files.h2
2 files changed, 21 insertions, 1 deletions
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