diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-03-30 07:43:06 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-03-30 07:43:06 +0000 |
commit | 1be7419d10a4c2226783f280af9e2aa7ff48b738 (patch) | |
tree | ab1c63ea9b9edb9c1eddcc93c5c572230694ce4e /src/os/unix/ngx_files.c | |
parent | a1e9bfbc859490e25f4fff07ddc5441c9a91abcc (diff) | |
download | nginx-1be7419d10a4c2226783f280af9e2aa7ff48b738.tar.gz nginx-1be7419d10a4c2226783f280af9e2aa7ff48b738.zip |
ngx_fs_bsize()
Diffstat (limited to 'src/os/unix/ngx_files.c')
-rw-r--r-- | src/os/unix/ngx_files.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index 1203989b6..98ed08229 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -416,3 +416,50 @@ ngx_directio_off(ngx_fd_t fd) } #endif + + +#if (NGX_HAVE_STATFS) + +size_t +ngx_fs_bsize(u_char *name) +{ + struct statfs fs; + + if (statfs((char *) name, &fs) == -1) { + return 512; + } + + if ((fs.f_bsize % 512) != 0) { + return 512; + } + + return (size_t) fs.f_bsize; +} + +#elif (NGX_HAVE_STATVFS) + +size_t +ngx_fs_bsize(u_char *name) +{ + struct statvfs fs; + + if (statvfs((char *) name, &fs) == -1) { + return 512; + } + + if ((fs.f_frsize % 512) != 0) { + return 512; + } + + return (size_t) fs.f_frsize; +} + +#else + +size_t +ngx_fs_bsize(u_char *name) +{ + return 512; +} + +#endif |