From 90117f25bf10ea47f1bc02c22dc41f2a560d57eb Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 17 May 2018 11:03:53 -0700 Subject: s3: modules: vfs_default: Remove CHMOD_ACL in mkdir. Now I understand the use of the mask in POSIX ACLs this extra step is no longer needed. If the mkdir succeeded it's already set the correct mode. Signed-off-by: Jeremy Allison Reviewed-by: Volker Lendecke --- source3/modules/vfs_default.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index e335e270650..956cebfd592 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -498,7 +498,6 @@ static int vfswrap_mkdir(vfs_handle_struct *handle, mode_t mode) { int result; - bool has_dacl = False; const char *path = smb_fname->base_name; char *parent = NULL; @@ -506,7 +505,7 @@ static int vfswrap_mkdir(vfs_handle_struct *handle, if (lp_inherit_acls(SNUM(handle->conn)) && parent_dirname(talloc_tos(), path, &parent, NULL) - && (has_dacl = directory_has_default_acl(handle->conn, parent))) { + && directory_has_default_acl(handle->conn, parent)) { mode = (0777 & lp_directory_mask(SNUM(handle->conn))); } @@ -514,21 +513,6 @@ static int vfswrap_mkdir(vfs_handle_struct *handle, result = mkdir(path, mode); - if (result == 0 && !has_dacl) { - /* - * We need to do this as the default behavior of POSIX ACLs - * is to set the mask to be the requested group permission - * bits, not the group permission bits to be the requested - * group permission bits. This is not what we want, as it will - * mess up any inherited ACL bits that were set. JRA. - */ - int saved_errno = errno; /* We may get ENOSYS */ - if ((SMB_VFS_CHMOD_ACL(handle->conn, smb_fname, mode) == -1) && - (errno == ENOSYS)) { - errno = saved_errno; - } - } - END_PROFILE(syscall_mkdir); return result; } -- cgit v1.2.1