[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Wed Jan 17 05:10:02 UTC 2018


The branch, master has been updated
       via  0edce86 vfs_glusterfs: Add fallocate support for vfs_glusterfs
      from  e77f8e4 Remove file system sharemode before calling unlink

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


- Log -----------------------------------------------------------------
commit 0edce86e97a49f4bd79f4431015ac2b788105e46
Author: Sachin Prabhu <sprabhu at redhat.com>
Date:   Tue Nov 14 15:51:44 2017 +0530

    vfs_glusterfs: Add fallocate support for vfs_glusterfs
    
    Adds fallocate support to the vfs glusterfs plugin.
    
    v2: Add check for glusterfs-api version.
    RHBZ: 1478875
    Signed-off-by: Sachin Prabhu <sprabhu at redhat.com>
    Reviewed-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Wed Jan 17 06:09:29 CET 2018 on sn-devel-144

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

Summary of changes:
 source3/modules/vfs_glusterfs.c | 28 +++++++++++++++++++++++++++-
 source3/wscript                 |  4 ++++
 2 files changed, 31 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
index 953c46a..f9a96fa 100644
--- a/source3/modules/vfs_glusterfs.c
+++ b/source3/modules/vfs_glusterfs.c
@@ -464,6 +464,10 @@ static uint32_t vfs_gluster_fs_capabilities(struct vfs_handle_struct *handle,
 {
 	uint32_t caps = FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
 
+#ifdef HAVE_GFAPI_VER_6
+	caps |= FILE_SUPPORTS_SPARSE_FILES;
+#endif
+
 #ifdef STAT_HAVE_NSEC
 	*p_ts_res = TIMESTAMP_SET_NT_OR_BETTER;
 #endif
@@ -1148,9 +1152,31 @@ static int vfs_gluster_fallocate(struct vfs_handle_struct *handle,
 				 uint32_t mode,
 				 off_t offset, off_t len)
 {
-	/* TODO: add support using glfs_fallocate() and glfs_zerofill() */
+#ifdef HAVE_GFAPI_VER_6
+	int keep_size, punch_hole;
+
+	keep_size = mode & VFS_FALLOCATE_FL_KEEP_SIZE;
+	punch_hole = mode & VFS_FALLOCATE_FL_PUNCH_HOLE;
+
+	mode &= ~(VFS_FALLOCATE_FL_KEEP_SIZE|VFS_FALLOCATE_FL_PUNCH_HOLE);
+	if (mode != 0) {
+		errno = ENOTSUP;
+		return -1;
+	}
+
+	if (punch_hole) {
+		return glfs_discard(*(glfs_fd_t **)
+				    VFS_FETCH_FSP_EXTENSION(handle, fsp),
+				    offset, len);
+	}
+
+	return glfs_fallocate(*(glfs_fd_t **)
+			      VFS_FETCH_FSP_EXTENSION(handle, fsp),
+			      keep_size, offset, len);
+#else
 	errno = ENOTSUP;
 	return -1;
+#endif
 }
 
 static struct smb_filename *vfs_gluster_realpath(struct vfs_handle_struct *handle,
diff --git a/source3/wscript b/source3/wscript
index 0f8fe54..e81a212 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -1568,6 +1568,10 @@ main() {
                 conf.undefine('HAVE_GLUSTERFS')
         else:
             conf.undefine('HAVE_GLUSTERFS')
+
+        conf.CHECK_CFG(package='glusterfs-api', args='"glusterfs-api >= 6" --cflags --libs',
+                       msg='Checking for glusterfs-api >= 6',
+                       uselib_store="GFAPI_VER_6")
     else:
         conf.SET_TARGET_TYPE('gfapi', 'EMPTY')
         conf.undefine('HAVE_GLUSTERFS')


-- 
Samba Shared Repository



More information about the samba-cvs mailing list