]> git.kaiwu.me - nginx.git/commitdiff
fix posix_fadvise() error handling
authorIgor Sysoev <igor@sysoev.ru>
Sun, 15 Nov 2009 09:16:58 +0000 (09:16 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Sun, 15 Nov 2009 09:16:58 +0000 (09:16 +0000)
src/os/unix/ngx_files.c
src/os/unix/ngx_files.h

index 2264cc13e9c792bb9fdf849f6afa2bb799241a31..0ef083824d1340a15be7aa0cfc9b812528ae07ec 100644 (file)
@@ -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
index 2efd2477809f02adb01fb81ebbb24a89b720ebef..ccaf44a93dee7134deb3744fba62b1a09fa76036 100644 (file)
@@ -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