diff options
author | Björn Jacke <bj@sernet.de> | 2012-06-28 21:17:28 +0200 |
---|---|---|
committer | Bjoern Jacke <bj@sernet.de> | 2012-06-28 23:07:23 +0200 |
commit | 7560b1cea6d2c0b2962f5802f724525fc0ec9bf9 (patch) | |
tree | deee65e10d44536627ecdf14c701ebd87d0e039b | |
parent | f6ac6b8f3c40c99e7bc43d88ec5a2d95ecfc97a4 (diff) | |
download | samba-7560b1cea6d2c0b2962f5802f724525fc0ec9bf9.tar.gz |
s3: fine tune and clean up statvfs tests
This should also fix the build on Tru64. Tru64 has a POSIX compliant statvfs()
function while most *BSD systems ignore POSIX.
Autobuild-User(master): Björn Jacke <bj@sernet.de>
Autobuild-Date(master): Thu Jun 28 23:07:23 CEST 2012 on sn-devel-104
-rw-r--r-- | source3/configure.in | 13 | ||||
-rw-r--r-- | source3/smbd/statvfs.c | 4 |
2 files changed, 8 insertions, 9 deletions
diff --git a/source3/configure.in b/source3/configure.in index 6e324a16a02..5df54cfff9d 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6261,11 +6261,11 @@ fi CFLAGS=$CFLAGS_SAVE -# Checks for *BSD bsd_statvfs() function +# Checks for POSIX ignorant BSD style statvfs() function # Start AC_CHECK_HEADERS(sys/param.h sys/mount.h) -AC_MSG_CHECKING([bsd_statvfs: checking for statfs() and struct statfs.bsize]) +AC_MSG_CHECKING([checking for posix ignorant *bsd style statfs struct]) AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ AC_TRY_RUN([ #ifdef HAVE_SYS_PARAM_H @@ -6278,7 +6278,8 @@ AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ { struct statfs fsd; fsd.f_bsize = 0; - exit (statfs (".", &fsd)); + fsd.f_iosize = 0; + return (statfs (".", &fsd)); }], bsdstatvfs_cv_statfs=yes, bsdstatvfs_cv_statfs=no, @@ -6286,11 +6287,9 @@ AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ AC_MSG_RESULT($bsdstatvfs_cv_statfs) if test $bsdstatvfs_cv_statfs = yes; then - AC_DEFINE(BSD_STATVFS_BSIZE,1,[Whether statfs exists and struct statfs has bsize property]) + AC_DEFINE(BSD_STYLE_STATVFS,1,[Whether statfs struct is *bsd style]) fi - -# End -# Checks for *BSD sys_statvfs() function +# End of checks POSIX ignorant BSD style statvfs() function # Checks for the vfs_fileid module # Start diff --git a/source3/smbd/statvfs.c b/source3/smbd/statvfs.c index 5cefe2d4c23..918867f7aad 100644 --- a/source3/smbd/statvfs.c +++ b/source3/smbd/statvfs.c @@ -97,7 +97,7 @@ static int darwin_statvfs(const char *path, vfs_statvfs_struct *statbuf) return 0; } -#elif defined(BSD) && defined(BSD_STATVFS_BSIZE) +#elif defined(BSD_STYLE_STATVFS) static int bsd_statvfs(const char *path, vfs_statvfs_struct *statbuf) { struct statfs statfs_buf; @@ -177,7 +177,7 @@ int sys_statvfs(const char *path, vfs_statvfs_struct *statbuf) { #if defined(DARWINOS) return darwin_statvfs(path, statbuf); -#elif defined(BSD) && defined(BSD_STATVFS_BSIZE) +#elif defined(BSD_STYLE_STATVFS) return bsd_statvfs(path, statbuf); #elif defined(STAT_STATVFS) && defined(HAVE_FSID_INT) return linux_statvfs(path, statbuf); |