diff options
author | Sergey Kandaurov <pluknet@nginx.com> | 2020-07-13 15:34:22 +0300 |
---|---|---|
committer | Sergey Kandaurov <pluknet@nginx.com> | 2020-07-13 15:34:22 +0300 |
commit | 2346ee29e1333c20b9a9f9e5ea73940237fbff02 (patch) | |
tree | 9f7249e4871fe9a13799df5e16abbaa2ebd065ff /src/os/unix/ngx_files.c | |
parent | 3db00b4da74ddc0872be4cdb836aaff7fc21272a (diff) | |
parent | 1b2f040a1f82dfd3b30d3b67ea57b3bf1d723d4d (diff) | |
download | nginx-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.c | 45 |
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 |