From: Jeremy Allison Date: Fri, 14 May 2021 21:39:12 +0000 (-0700) Subject: s3: VFS: fake_acls: Add fake_acls_sys_acl_delete_def_fd(). X-Git-Tag: tevent-0.11.0~852 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d39b19317d1a13f9d45d72c9fcfb06487261b766;p=thirdparty%2Fsamba.git s3: VFS: fake_acls: Add fake_acls_sys_acl_delete_def_fd(). Signed-off-by: Jeremy Allison Reviewed-by: Noel Power --- diff --git a/source3/modules/vfs_fake_acls.c b/source3/modules/vfs_fake_acls.c index c92deb85097..f2675825d07 100644 --- a/source3/modules/vfs_fake_acls.c +++ b/source3/modules/vfs_fake_acls.c @@ -374,6 +374,26 @@ static int fake_acls_sys_acl_delete_def_file(vfs_handle_struct *handle, return ret; } +static int fake_acls_sys_acl_delete_def_fd(vfs_handle_struct *handle, + struct files_struct *fsp) +{ + int ret; + const char *name = FAKE_ACL_DEFAULT_XATTR; + + if (!fsp->fsp_flags.is_directory) { + errno = EINVAL; + return -1; + } + + ret = SMB_VFS_NEXT_FREMOVEXATTR(handle, fsp, name); + if (ret == -1 && errno == ENOATTR) { + ret = 0; + errno = 0; + } + + return ret; +} + static int fake_acls_lchown(vfs_handle_struct *handle, const struct smb_filename *smb_fname, uid_t uid, @@ -633,6 +653,7 @@ static struct vfs_fn_pointers vfs_fake_acls_fns = { .sys_acl_blob_get_fd_fn = posix_sys_acl_blob_get_fd, .sys_acl_set_fd_fn = fake_acls_sys_acl_set_fd, .sys_acl_delete_def_file_fn = fake_acls_sys_acl_delete_def_file, + .sys_acl_delete_def_fd_fn = fake_acls_sys_acl_delete_def_fd, .lchown_fn = fake_acls_lchown, .fchown_fn = fake_acls_fchown,