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

Ira Cooper ira at samba.org
Tue Mar 31 19:36:35 MDT 2015


Please make the calls set the errno ENOTSUP, so there's no confusion about
what caused the issues.

(If anyone wants to chime in with another proper errno, I'd listen here.
But that's the one that comes to mind.)

Thanks,

-Ira


On Tue, Mar 31, 2015 at 9:02 AM, 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 | 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