ngx_fs_bsize()

This commit is contained in:
Igor Sysoev committed 2009-03-30 07:43:06 +00:00
1 parent a1e9bfbc85
commit 1be7419d10
11 files changed
+115 -5

No files matched your search

+7 -5
View File
@@ -2,8 +2,10 @@
# Copyright (C) Igor Sysoev
ngx_include="unistd.h"; . auto/include
ngx_include="inttypes.h"; . auto/include
ngx_include="limits.h"; . auto/include
ngx_include="sys/filio.h"; . auto/include
ngx_include="crypt.h"; . auto/include
ngx_include="unistd.h"; . auto/include
ngx_include="inttypes.h"; . auto/include
ngx_include="limits.h"; . auto/include
ngx_include="sys/filio.h"; . auto/include
ngx_include="sys/mount.h"; . auto/include
ngx_include="sys/statvfs.h"; . auto/include
ngx_include="crypt.h"; . auto/include
+24
View File
@@ -205,3 +205,27 @@ ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="directio(0, DIRECTIO_ON);"
. auto/feature
ngx_feature="statfs()"
ngx_feature_name="NGX_HAVE_STATFS"
ngx_feature_run=no
ngx_feature_incs="$NGX_INCLUDE_SYS_MOUNT_H
$NGX_INCLUDE_SYS_VFS_H"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="struct statfs fs;
statfs(NULL, &fs);"
. auto/feature
ngx_feature="statvfs()"
ngx_feature_name="NGX_HAVE_STATVFS"
ngx_feature_run=no
ngx_feature_incs="#include <sys/types.h>
#include <sys/statvfs.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="struct statvfs fs;
statvfs(NULL, &fs);"
. auto/feature
+3
View File
@@ -124,4 +124,7 @@ ngx_feature_test="long mask = 0;
. auto/feature
ngx_include="sys/vfs.h"; . auto/include
CC_AUX_FLAGS=$cc_aux_flags
+47
View File
@@ -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
+3
View File
@@ -274,4 +274,7 @@ ngx_int_t ngx_directio_off(ngx_fd_t fd);
#endif
size_t ngx_fs_bsize(u_char *name);
#endif /* _NGX_FILES_H_INCLUDED_ */
+1
View File
@@ -22,6 +22,7 @@
#include <grp.h>
#include <dirent.h>
#include <glob.h>
#include <sys/mount.h> /* statfs() */
#include <sys/filio.h> /* FIONBIO */
#include <sys/uio.h>
+1
View File
@@ -28,6 +28,7 @@
#include <grp.h>
#include <dirent.h>
#include <glob.h>
#include <sys/vfs.h> /* statfs() */
#include <sys/uio.h>
#include <sys/stat.h>
+6
View File
@@ -44,6 +44,12 @@
#include <grp.h>
#include <dirent.h>
#include <glob.h>
#if (NGX_HAVE_SYS_MOUNT_H)
#include <sys/mount.h> /* statfs() */
#endif
#if (NGX_HAVE_SYS_STATVFS_H)
#include <sys/statvfs.h> /* statvfs() */
#endif
#if (NGX_HAVE_SYS_FILIO_H)
#include <sys/filio.h> /* FIONBIO */
+1
View File
@@ -28,6 +28,7 @@
#include <grp.h>
#include <dirent.h>
#include <glob.h>
#include <sys/statvfs.h> /* statvfs() */
#include <sys/filio.h> /* FIONBIO */
#include <sys/uio.h>
+20
View File
@@ -504,8 +504,28 @@ ngx_directio_on(ngx_fd_t fd)
return 0;
}
ngx_int_t
ngx_directio_off(ngx_fd_t fd)
{
return 0;
}
size_t
ngx_fs_bsize(u_char *name)
{
u_char root[4];
u_long sc, bs, nfree, ncl;
if (name[2] == ':') {
ngx_cpystrn(root, name, 4);
name = root;
}
if (GetDiskFreeSpace((const char *) name, &sc, &bs, &nfree, &ncl) == 0) {
return 512;
}
return sc * bs;
}
+2
View File
@@ -243,5 +243,7 @@ ngx_int_t ngx_directio_on(ngx_fd_t fd);
ngx_int_t ngx_directio_off(ngx_fd_t fd);
#define ngx_directio_off_n "ngx_directio_off_n"
size_t ngx_fs_bsize(u_char *name);
#endif /* _NGX_FILES_H_INCLUDED_ */