[SCM] Samba Shared Repository - branch master updated - 28894f9b82032ef18f626428510a633a5c884d06

Tim Prouty tprouty at samba.org
Thu Dec 18 02:17:05 GMT 2008


The branch, master has been updated
       via  28894f9b82032ef18f626428510a633a5c884d06 (commit)
      from  55620b4e3c6c6627178fd51aa9b2aec8401c4f26 (commit)

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


- Log -----------------------------------------------------------------
commit 28894f9b82032ef18f626428510a633a5c884d06
Author: Aravind Srinivasan <aravind.srinivasan at isilon.com>
Date:   Wed Dec 17 12:02:19 2008 -0800

    s3: Add statvfs implementation to the onefs vfs module

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

Summary of changes:
 source3/modules/vfs_onefs.c |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_onefs.c b/source3/modules/vfs_onefs.c
index b51858f..b902812 100644
--- a/source3/modules/vfs_onefs.c
+++ b/source3/modules/vfs_onefs.c
@@ -38,6 +38,32 @@ static int onefs_open(vfs_handle_struct *handle, const char *fname,
 	return SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
 }
 
+static int onefs_statvfs(vfs_handle_struct *handle, const char *path,
+			 vfs_statvfs_struct *statbuf)
+{
+	struct statvfs statvfs_buf;
+	int result;
+
+	DEBUG(5, ("Calling SMB_STAT_VFS \n"));
+	result = statvfs(path, &statvfs_buf);
+	ZERO_STRUCTP(statbuf);
+
+	if (!result) {
+		statbuf->OptimalTransferSize = statvfs_buf.f_iosize;
+		statbuf->BlockSize = statvfs_buf.f_bsize;
+		statbuf->TotalBlocks = statvfs_buf.f_blocks;
+		statbuf->BlocksAvail = statvfs_buf.f_bfree;
+		statbuf->UserBlocksAvail = statvfs_buf.f_bavail;
+		statbuf->TotalFileNodes = statvfs_buf.f_files;
+		statbuf->FreeFileNodes = statvfs_buf.f_ffree;
+		statbuf->FsIdentifier =
+		    (((uint64_t)statvfs_buf.f_fsid.val[0]<<32) &
+			0xffffffff00000000LL) |
+		    (uint64_t)statvfs_buf.f_fsid.val[1];
+	}
+        return result;
+}
+
 static vfs_op_tuple onefs_ops[] = {
 	{SMB_VFS_OP(onefs_mkdir), SMB_VFS_OP_MKDIR,
 	 SMB_VFS_LAYER_OPAQUE},
@@ -51,6 +77,8 @@ static vfs_op_tuple onefs_ops[] = {
 	 SMB_VFS_LAYER_OPAQUE},
 	{SMB_VFS_OP(onefs_fset_nt_acl), SMB_VFS_OP_FSET_NT_ACL,
 	 SMB_VFS_LAYER_OPAQUE},
+	{SMB_VFS_OP(onefs_statvfs), SMB_VFS_OP_STATVFS,
+	 SMB_VFS_LAYER_OPAQUE},
 	{SMB_VFS_OP(NULL), SMB_VFS_OP_NOOP, SMB_VFS_LAYER_NOOP}
 };
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list