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

Ira Cooper ira at samba.org
Thu Apr 2 05:01:43 MDT 2015


Reviewed-by: Ira Cooper <ira at samba.org>

-Ira

On Wed, Apr 1, 2015 at 10:11 PM, Yan, Zheng <zyan at redhat.com> wrote:

> 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