From: Jeremy Allison Date: Fri, 14 May 2021 22:57:08 +0000 (-0700) Subject: s3: lib: sysacls: Add sys_acl_delete_def_fd(). X-Git-Tag: tevent-0.11.0~846 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f75e93ef77e150c23d59791a53c560d71fb5bc04;p=thirdparty%2Fsamba.git s3: lib: sysacls: Add sys_acl_delete_def_fd(). In the default (posix) case goes to posixacl_sys_acl_delete_def_fd(). For all other systems goes to their relevent backends. Now we can fill in the delete_def_fd() function in vfs_default.c Signed-off-by: Jeremy Allison Reviewed-by: Noel Power --- diff --git a/source3/include/smb_acls.h b/source3/include/smb_acls.h index c5a2339f1db..1e9e99ad1ff 100644 --- a/source3/include/smb_acls.h +++ b/source3/include/smb_acls.h @@ -72,6 +72,8 @@ int sys_acl_set_fd(struct vfs_handle_struct *handle, struct files_struct *fsp, SMB_ACL_T acl_d); int sys_acl_delete_def_file(struct vfs_handle_struct *handle, const struct smb_filename *smb_fname); +int sys_acl_delete_def_fd(struct vfs_handle_struct *handle, + struct files_struct *fsp); int no_acl_syscall_error(int err); #endif /* _SMB_ACLS_H */ diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c index 77bf414d731..297e2684ada 100644 --- a/source3/lib/sysacls.c +++ b/source3/lib/sysacls.c @@ -353,7 +353,8 @@ int sys_acl_valid(SMB_ACL_T acl_d) /* * acl_get_file, acl_get_fd, acl_set_file, acl_set_fd and - * sys_acl_delete_def_file are to be redirected to the default + * sys_acl_delete_def_file, + * sys_acl_delete_def_fd are to be redirected to the default * statically-bound acl vfs module, but they are replacable. */ @@ -392,6 +393,12 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return posixacl_sys_acl_delete_def_file(handle, smb_fname); } +int sys_acl_delete_def_fd(vfs_handle_struct *handle, + files_struct *fsp) +{ + return posixacl_sys_acl_delete_def_fd(handle, fsp); +} + #elif defined(HAVE_AIX_ACLS) SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle, @@ -428,6 +435,11 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return aixacl_sys_acl_delete_def_file(handle, smb_fname); } +int sys_acl_delete_def_fd(vfs_handle_struct *handle, + files_struct *fsp) +{ + return aixacl_sys_acl_delete_def_fd(handle, fsp); +} #elif defined(HAVE_SOLARIS_UNIXWARE_ACLS) SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle, @@ -466,6 +478,11 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return solarisacl_sys_acl_delete_def_file(handle, smb_fname); } +int sys_acl_delete_def_fd(vfs_handle_struct *handle, + files_struct *fsp) +{ + return solarisacl_sys_acl_delete_def_fd(handle, fsp); +} #elif defined(HAVE_HPUX_ACLS) SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle, @@ -502,6 +519,11 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return hpuxacl_sys_acl_delete_def_file(handle, smb_fname); } +int sys_acl_delete_def_fd(vfs_handle_struct *handle, + files_struct *fsp) +{ + return hpuxacl_sys_acl_delete_def_fd(handle, fsp); +} #else /* No ACLs. */ SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle, @@ -563,6 +585,16 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return -1; } +int sys_acl_delete_def_fd(vfs_handle_struct *handle, + files_struct *fsp) +{ +#ifdef ENOTSUP + errno = ENOTSUP; +#else + errno = ENOSYS; +#endif + return -1; +} #endif /************************************************************************