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

Yan, Zheng zyan at redhat.com
Wed Apr 1 20:11: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 | 48 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index e9f000c..409189b 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -1205,6 +1205,47 @@ 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 */
 
@@ -1277,6 +1318,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