The branch, master has been updated
       via  f0bba96 s3: Improve statvfs support
       via  51e7859 waf: Do not use standards.h on darwin
      from  26a0e7a s4 dns: Test deleting records and fix a small bu

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


- Log -----------------------------------------------------------------
commit f0bba969d87f0fd5c7d3f1ba001a5c9a754cd7ed
Author: Brad Smith <[email protected]>
Date:   Sat Mar 10 19:16:06 2012 +0100

    s3: Improve statvfs support
    
    Autobuild-User: Volker Lendecke <[email protected]>
    Autobuild-Date: Sun Mar 11 14:18:04 CET 2012 on sn-devel-104

commit 51e785949c5908912a9b0ae903e7c18d898808fc
Author: Volker Lendecke <[email protected]>
Date:   Sat Mar 10 10:26:10 2012 +0100

    waf: Do not use standards.h on darwin
    
    We get a nasty warning every time we include that

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

Summary of changes:
 buildtools/wafsamba/wscript   |    7 ++++++-
 source3/modules/vfs_default.c |   12 ++++++------
 source3/smbd/statvfs.c        |   11 ++++++++---
 3 files changed, 20 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index 5c5e249..094f9cc 100755
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -350,7 +350,12 @@ def configure(conf):
     conf.CHECK_HEADERS('stdio.h sys/types.h sys/stat.h stdlib.h stddef.h 
memory.h string.h',
                        add_headers=True)
     conf.CHECK_HEADERS('strings.h inttypes.h stdint.h unistd.h 
minix/config.h', add_headers=True)
-    conf.CHECK_HEADERS('ctype.h standards.h stdbool.h stdint.h stdarg.h 
vararg.h', add_headers=True)
+    conf.CHECK_HEADERS('ctype.h', add_headers=True)
+
+    if sys.platform != 'darwin':
+        conf.CHECK_HEADERS('standards.h', add_headers=True)
+
+    conf.CHECK_HEADERS('stdbool.h stdint.h stdarg.h vararg.h', 
add_headers=True)
     conf.CHECK_HEADERS('limits.h assert.h')
 
     # see if we need special largefile flags
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index fd0ff0a..1dbd308 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -108,15 +108,15 @@ static uint32_t vfswrap_fs_capabilities(struct 
vfs_handle_struct *handle,
        connection_struct *conn = handle->conn;
        uint32_t caps = FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
        struct smb_filename *smb_fname_cpath = NULL;
+       struct vfs_statvfs_struct statbuf;
        NTSTATUS status;
-       int ret = -1;
+       int ret;
 
-#if defined(DARWINOS) || (defined(BSD) && defined(BSD_STATVFS_BSIZE))
-       struct vfs_statvfs_struct statbuf;
        ZERO_STRUCT(statbuf);
-       sys_statvfs(conn->connectpath, &statbuf);
-       caps = statbuf.FsCapabilities;
-#endif
+       ret = sys_statvfs(conn->connectpath, &statbuf);
+       if (ret == 0) {
+               caps = statbuf.FsCapabilities;
+       }
 
        *p_ts_res = TIMESTAMP_SET_SECONDS;
 
diff --git a/source3/smbd/statvfs.c b/source3/smbd/statvfs.c
index 1e72a8e..5cefe2d 100644
--- a/source3/smbd/statvfs.c
+++ b/source3/smbd/statvfs.c
@@ -151,12 +151,17 @@ static int linux_statvfs(const char *path, 
vfs_statvfs_struct *statbuf)
                statbuf->TotalFileNodes = statvfs_buf.f_files;
                statbuf->FreeFileNodes = statvfs_buf.f_ffree;
                statbuf->FsIdentifier = statvfs_buf.f_fsid;
-
-               /* Good defaults for Linux filesystems are case sensitive
-                * and case preserving.
+               /* Try to extrapolate some of the fs flags into the
+                * capabilities
                 */
                statbuf->FsCapabilities =
                    FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
+#ifdef ST_QUOTA
+               if (statvfs_buf.f_flag & ST_QUOTA)
+                       statbuf->FsCapabilities |= FILE_VOLUME_QUOTAS;
+#endif
+               if (statvfs_buf.f_flag & ST_RDONLY)
+                       statbuf->FsCapabilities |= FILE_READ_ONLY_VOLUME;
        }
        return result;
 }


-- 
Samba Shared Repository

Reply via email to