]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: lib: sysacls: Add sys_acl_delete_def_fd().
authorJeremy Allison <jra@samba.org>
Fri, 14 May 2021 22:57:08 +0000 (15:57 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 18 May 2021 17:29:34 +0000 (17:29 +0000)
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 <jra@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
source3/include/smb_acls.h
source3/lib/sysacls.c

index c5a2339f1dbbf97ae8fb0435d4d5c9c122b02288..1e9e99ad1ffe6c97d62e9ea1881ef83dce932b83 100644 (file)
@@ -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 */
index 77bf414d7317ce90d8a0a0ad6d583ed850c22f1a..297e2684adadf96b984fa7e2d2e34745c320f0b1 100644 (file)
@@ -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
 
 /************************************************************************