[PATCH 2/2] vfs_ceph: add empty ACL callbacks

Yan, Zheng zyan at redhat.com
Tue Mar 31 07:02:03 MDT 2015


If a vfs module has no ACL callbacks, smbd will use its default ACL
callbacks. These default ACL callbacks operate on local filesytem,
it's clearly wrong for ceph case.

libcephfs does not support ACL yet, so this patch adds ACL callbacks
that do nothing.

Signed-off-by: Yan, Zheng <zyan at redhat.com>
---
 source3/modules/vfs_ceph.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index 3b165d1..cee0415 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -1199,6 +1199,42 @@ 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)
+{
+	return NULL;
+}
+
+static SMB_ACL_T cephwrap_sys_acl_get_fd(struct vfs_handle_struct *handle,
+					 struct files_struct *fsp,
+					 TALLOC_CTX *mem_ctx)
+{
+	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)
+{
+	return -1;
+}
+
+static int cephwrap_sys_acl_set_fd(struct vfs_handle_struct *handle,
+				   struct files_struct *fsp,
+				   SMB_ACL_T theacl)
+{
+	return -1;
+}
+
+static int cephwrap_sys_acl_delete_def_file(struct vfs_handle_struct *handle,
+					    const char *path)
+{
+	return -1;
+}
+
 static struct vfs_fn_pointers ceph_fns = {
 	/* Disk operations */
 
@@ -1271,6 +1307,13 @@ static struct vfs_fn_pointers ceph_fns = {
 	.setxattr_fn = cephwrap_setxattr,
 	.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,
+
 	/* aio operations */
 	.aio_force_fn = cephwrap_aio_force,
 
-- 
1.9.3



More information about the samba-technical mailing list