[SCM] Samba Shared Repository - branch master updated

Björn Jacke bjacke at samba.org
Fri Jun 29 06:44:18 MDT 2012


The branch, master has been updated
       via  f4a1893 s3:build: tell linker to use corefoundation on all darwin releases
       via  b526a0d s3: merge bsd_statvfs and darwin_statvfs
      from  f3862b9 ccan: we're subsystems, not a library.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f4a189392c17f5992a7c04aae6f6c2134fe49828
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Jun 29 12:49:21 2012 +0200

    s3:build: tell linker to use corefoundation on all darwin releases
    
    Autobuild-User(master): Björn Jacke <bj at sernet.de>
    Autobuild-Date(master): Fri Jun 29 14:43:39 CEST 2012 on sn-devel-104

commit b526a0d6730796057c5486bf07fbb6b1b79c92b4
Author: Björn Jacke <bj at sernet.de>
Date:   Thu Jun 28 21:34:40 2012 +0200

    s3: merge bsd_statvfs and darwin_statvfs

-----------------------------------------------------------------------

Summary of changes:
 source3/configure.in   |    4 +-
 source3/smbd/statvfs.c |   84 +++++++++++++++++------------------------------
 2 files changed, 33 insertions(+), 55 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/configure.in b/source3/configure.in
index ba376f0..e08ac16 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -635,9 +635,9 @@ AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEA
 CPPFLAGS="$old_CPPFLAGS"
 
 # To link lib/util/charset/charset_macosxfs.c, we need to tell the linker
-# about CoreFoundation, at least on os X 10.6 and 10.7
+# about CoreFoundation, at least on os X 10.4..10.7 resp. darwin8..12
 case "$host_os" in
-    *darwin11*|*darwin10*)
+    *darwin*)
 		LDFLAGS="$LDFLAGS -framework CoreFoundation"
 	;;
 esac
diff --git a/source3/smbd/statvfs.c b/source3/smbd/statvfs.c
index 918867f..f343595 100644
--- a/source3/smbd/statvfs.c
+++ b/source3/smbd/statvfs.c
@@ -24,7 +24,6 @@
 #include "smbd/smbd.h"
 
 #if defined(DARWINOS)
-
 #include <sys/attr.h>
 
 static int darwin_fs_capabilities(const char * path)
@@ -74,65 +73,46 @@ static int darwin_fs_capabilities(const char * path)
 
 	return caps;
 }
+#endif /* DARWINOS */
 
-static int darwin_statvfs(const char *path, vfs_statvfs_struct *statbuf)
+#if defined(BSD_STYLE_STATVFS)
+static int bsd_statvfs(const char *path, vfs_statvfs_struct *statbuf)
 {
 	struct statfs sbuf;
 	int ret;
 
 	ret = statfs(path, &sbuf);
 	if (ret != 0) {
-		return ret;
-	}
-
-	statbuf->OptimalTransferSize = sbuf.f_iosize;
-	statbuf->BlockSize = sbuf.f_bsize;
-	statbuf->TotalBlocks = sbuf.f_blocks;
-	statbuf->BlocksAvail = sbuf.f_bfree;
-	statbuf->UserBlocksAvail = sbuf.f_bavail;
-	statbuf->TotalFileNodes = sbuf.f_files;
-	statbuf->FreeFileNodes = sbuf.f_ffree;
-	statbuf->FsIdentifier = *(uint64_t *)(&sbuf.f_fsid); /* Ick. */
-	statbuf->FsCapabilities = darwin_fs_capabilities(sbuf.f_mntonname);
-
-	return 0;
-}
-#elif defined(BSD_STYLE_STATVFS)
-static int bsd_statvfs(const char *path, vfs_statvfs_struct *statbuf)
-{
-	struct statfs statfs_buf;
-	int result;
-
-	result = statfs(path, &statfs_buf);
-	if (result != 0) {
-		return result;
-	}
-
-	statbuf->OptimalTransferSize = statfs_buf.f_iosize;
-	statbuf->BlockSize = statfs_buf.f_bsize;
-	statbuf->TotalBlocks = statfs_buf.f_blocks;
-	statbuf->BlocksAvail = statfs_buf.f_bfree;
-	statbuf->UserBlocksAvail = statfs_buf.f_bavail;
-	statbuf->TotalFileNodes = statfs_buf.f_files;
-	statbuf->FreeFileNodes = statfs_buf.f_ffree;
-	statbuf->FsIdentifier =
-		(((uint64_t) statfs_buf.f_fsid.val[0] << 32) & 0xffffffff00000000LL) |
-		    (uint64_t) statfs_buf.f_fsid.val[1];
-	/* Try to extrapolate some of the fs flags into the
-	 * capabilities
-	 */
-	statbuf->FsCapabilities =
-	    FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
+		statbuf->OptimalTransferSize = sbuf.f_iosize;
+		statbuf->BlockSize = sbuf.f_bsize;
+		statbuf->TotalBlocks = sbuf.f_blocks;
+		statbuf->BlocksAvail = sbuf.f_bfree;
+		statbuf->UserBlocksAvail = sbuf.f_bavail;
+		statbuf->TotalFileNodes = sbuf.f_files;
+		statbuf->FreeFileNodes = sbuf.f_ffree;
+		statbuf->FsIdentifier =
+			(((uint64_t) sbuf.f_fsid.val[0] << 32) & 0xffffffff00000000LL) |
+			    (uint64_t) sbuf.f_fsid.val[1];
+#ifdef DARWINOS
+		statbuf->FsCapabilities = darwin_fs_capabilities(sbuf.f_mntonname);
+#else
+		/* Try to extrapolate some of the fs flags into the
+		 * capabilities
+		 */
+		statbuf->FsCapabilities =
+		    FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
 #ifdef MNT_ACLS
-	if (statfs_buf.f_flags & MNT_ACLS)
-		statbuf->FsCapabilities |= FILE_PERSISTENT_ACLS;
+		if (sbuf.f_flags & MNT_ACLS)
+			statbuf->FsCapabilities |= FILE_PERSISTENT_ACLS;
 #endif
-	if (statfs_buf.f_flags & MNT_QUOTA)
-		statbuf->FsCapabilities |= FILE_VOLUME_QUOTAS;
-	if (statfs_buf.f_flags & MNT_RDONLY)
-		statbuf->FsCapabilities |= FILE_READ_ONLY_VOLUME;
+		if (sbuf.f_flags & MNT_QUOTA)
+			statbuf->FsCapabilities |= FILE_VOLUME_QUOTAS;
+		if (sbuf.f_flags & MNT_RDONLY)
+			statbuf->FsCapabilities |= FILE_READ_ONLY_VOLUME;
+#endif
+	}
 
-	return 0;
+	return ret;
 }
 #elif defined(STAT_STATVFS) && defined(HAVE_FSID_INT)
 static int linux_statvfs(const char *path, vfs_statvfs_struct *statbuf)
@@ -175,9 +155,7 @@ static int linux_statvfs(const char *path, vfs_statvfs_struct *statbuf)
 */
 int sys_statvfs(const char *path, vfs_statvfs_struct *statbuf)
 {
-#if defined(DARWINOS)
-	return darwin_statvfs(path, statbuf);
-#elif defined(BSD_STYLE_STATVFS)
+#if defined(BSD_STYLE_STATVFS)
 	return bsd_statvfs(path, statbuf);
 #elif defined(STAT_STATVFS) && defined(HAVE_FSID_INT)
 	return linux_statvfs(path, statbuf);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list