VFS: fake_acls: Clean up fake_acls_sys_acl_delete_def_file().
authorJeremy Allison <jra@samba.org>
Fri, 12 Mar 2021 00:36:09 +0000 (16:36 -0800)
committerRalph Boehme <slow@samba.org>
Wed, 7 Apr 2021 16:26:28 +0000 (16:26 +0000)
Change SMB_VFS_NEXT_REMOVEXATTR() -> SMB_VFS_NEXT_FREMOVEXATTR().

It doesn't need to do STAT calls, it's always called
with an fsp->fsp_name smb_filename. This will change
later to a handle-based call.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/modules/vfs_fake_acls.c

index 716df540e479e411a673bd15c36e734fffa9baac..08e7b667149a1818d6ae3f0aa5ce9b79494462ac 100644 (file)
@@ -385,39 +385,22 @@ static int fake_acls_sys_acl_set_fd(vfs_handle_struct *handle,
 }
 
 static int fake_acls_sys_acl_delete_def_file(vfs_handle_struct *handle,
-                       const struct smb_filename *smb_fname_in)
+                       const struct smb_filename *smb_fname)
 {
        int ret;
        const char *name = FAKE_ACL_DEFAULT_XATTR;
-       TALLOC_CTX *frame = talloc_stackframe();
-       struct smb_filename *smb_fname = cp_smb_filename_nostream(talloc_tos(),
-                                               smb_fname_in);
-
-       if (smb_fname == NULL) {
-               TALLOC_FREE(frame);
-               errno = ENOMEM;
-               return -1;
-       }
-
-       ret = SMB_VFS_NEXT_STAT(handle, smb_fname);
-       if (ret == -1) {
-               TALLOC_FREE(frame);
-               return -1;
-       }
 
        if (!S_ISDIR(smb_fname->st.st_ex_mode)) {
                errno = EINVAL;
-               TALLOC_FREE(frame);
                return -1;
        }
 
-       ret = SMB_VFS_NEXT_REMOVEXATTR(handle, smb_fname, name);
+       ret = SMB_VFS_NEXT_FREMOVEXATTR(handle, smb_fname->fsp, name);
        if (ret == -1 && errno == ENOATTR) {
                ret = 0;
                errno = 0;
        }
 
-       TALLOC_FREE(frame);
        return ret;
 }