aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_files.c
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2020-07-13 15:34:22 +0300
committerSergey Kandaurov <pluknet@nginx.com>2020-07-13 15:34:22 +0300
commit2346ee29e1333c20b9a9f9e5ea73940237fbff02 (patch)
tree9f7249e4871fe9a13799df5e16abbaa2ebd065ff /src/os/unix/ngx_files.c
parent3db00b4da74ddc0872be4cdb836aaff7fc21272a (diff)
parent1b2f040a1f82dfd3b30d3b67ea57b3bf1d723d4d (diff)
downloadnginx-2346ee29e1333c20b9a9f9e5ea73940237fbff02.tar.gz
nginx-2346ee29e1333c20b9a9f9e5ea73940237fbff02.zip
Merged with the default branch.
Diffstat (limited to 'src/os/unix/ngx_files.c')
-rw-r--r--src/os/unix/ngx_files.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index 482d32763..1c82a8ead 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -875,9 +875,28 @@ ngx_fs_bsize(u_char *name)
return 512;
}
+#if (NGX_LINUX)
+ if ((size_t) fs.f_bsize > ngx_pagesize) {
+ return 512;
+ }
+#endif
+
return (size_t) fs.f_bsize;
}
+
+off_t
+ngx_fs_available(u_char *name)
+{
+ struct statfs fs;
+
+ if (statfs((char *) name, &fs) == -1) {
+ return NGX_MAX_OFF_T_VALUE;
+ }
+
+ return (off_t) fs.f_bavail * fs.f_bsize;
+}
+
#elif (NGX_HAVE_STATVFS)
size_t
@@ -893,9 +912,28 @@ ngx_fs_bsize(u_char *name)
return 512;
}
+#if (NGX_LINUX)
+ if ((size_t) fs.f_frsize > ngx_pagesize) {
+ return 512;
+ }
+#endif
+
return (size_t) fs.f_frsize;
}
+
+off_t
+ngx_fs_available(u_char *name)
+{
+ struct statvfs fs;
+
+ if (statvfs((char *) name, &fs) == -1) {
+ return NGX_MAX_OFF_T_VALUE;
+ }
+
+ return (off_t) fs.f_bavail * fs.f_frsize;
+}
+
#else
size_t
@@ -904,4 +942,11 @@ ngx_fs_bsize(u_char *name)
return 512;
}
+
+off_t
+ngx_fs_available(u_char *name)
+{
+ return NGX_MAX_OFF_T_VALUE;
+}
+
#endif