From 4c5367d84b0b51d5597b652a59ba43688731572c Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Mon, 21 Mar 2016 10:42:21 +0800 Subject: [PATCH] s3: vfs: ceph: Add posix acl support Signed-off-by: Yan, Zheng Signed-off-by: Ira Cooper Reviewed-by: Jeremy Allison Autobuild-User(master): Ira Cooper Autobuild-Date(master): Sun Jul 24 04:08:23 CEST 2016 on sn-devel-144 --- source3/modules/vfs_ceph.c | 54 ++++++----------------------------- source3/modules/wscript_build | 2 +- 2 files changed, 9 insertions(+), 47 deletions(-) diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index b609d72bff9..8e11dab852e 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -36,6 +36,7 @@ #include #include "cephfs/libcephfs.h" #include "smbprofile.h" +#include "modules/posixacl_xattr.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_VFS @@ -1218,47 +1219,6 @@ static int cephwrap_set_offline(struct vfs_handle_struct *handle, return -1; } -static SMB_ACL_T cephwrap_sys_acl_get_file(struct vfs_handle_struct *handle, - const char *path_p, - SMB_ACL_TYPE_T type, - TALLOC_CTX *mem_ctx) -{ - errno = ENOTSUP; - return NULL; -} - -static SMB_ACL_T cephwrap_sys_acl_get_fd(struct vfs_handle_struct *handle, - struct files_struct *fsp, - TALLOC_CTX *mem_ctx) -{ - errno = ENOTSUP; - return NULL; -} - -static int cephwrap_sys_acl_set_file(struct vfs_handle_struct *handle, - const char *name, - SMB_ACL_TYPE_T acltype, - SMB_ACL_T theacl) -{ - errno = ENOTSUP; - return -1; -} - -static int cephwrap_sys_acl_set_fd(struct vfs_handle_struct *handle, - struct files_struct *fsp, - SMB_ACL_T theacl) -{ - errno = ENOTSUP; - return -1; -} - -static int cephwrap_sys_acl_delete_def_file(struct vfs_handle_struct *handle, - const char *path) -{ - errno = ENOTSUP; - return -1; -} - static struct vfs_fn_pointers ceph_fns = { /* Disk operations */ @@ -1331,11 +1291,13 @@ static struct vfs_fn_pointers ceph_fns = { .fsetxattr_fn = cephwrap_fsetxattr, /* Posix ACL Operations */ - .sys_acl_get_file_fn = cephwrap_sys_acl_get_file, - .sys_acl_get_fd_fn = cephwrap_sys_acl_get_fd, - .sys_acl_set_file_fn = cephwrap_sys_acl_set_file, - .sys_acl_set_fd_fn = cephwrap_sys_acl_set_fd, - .sys_acl_delete_def_file_fn = cephwrap_sys_acl_delete_def_file, + .sys_acl_get_file_fn = posixacl_xattr_acl_get_file, + .sys_acl_get_fd_fn = posixacl_xattr_acl_get_fd, + .sys_acl_blob_get_file_fn = posix_sys_acl_blob_get_file, + .sys_acl_blob_get_fd_fn = posix_sys_acl_blob_get_fd, + .sys_acl_set_file_fn = posixacl_xattr_acl_set_file, + .sys_acl_set_fd_fn = posixacl_xattr_acl_set_fd, + .sys_acl_delete_def_file_fn = posixacl_xattr_acl_delete_def_file, /* aio operations */ .aio_force_fn = cephwrap_aio_force, diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build index 3bd1fd0e801..2d42a82b9fa 100644 --- a/source3/modules/wscript_build +++ b/source3/modules/wscript_build @@ -451,7 +451,7 @@ bld.SAMBA3_MODULE('perfcount_test', bld.SAMBA3_MODULE('vfs_ceph', subsystem='vfs', source='vfs_ceph.c', - deps='samba-util cephfs', + deps='POSIXACL_XATTR samba-util cephfs', init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_ceph'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_ceph'), -- 2.47.3