struct smb_filename *parent_dir_fname, /* parent. */
struct smb_filename *smb_fname_atname, /* atname relative to parent. */
struct smb_filename *smb_dname, /* full pathname from root of share. */
+ struct security_descriptor *sd,
uint32_t file_attributes,
struct files_struct *fsp)
{
}
}
+ if (lp_nt_acl_support(SNUM(conn))) {
+ status = apply_new_nt_acl(parent_dir_fname->fsp,
+ fsp,
+ sd);
+ if (!NT_STATUS_IS_OK(status)) {
+ DBG_WARNING("apply_new_nt_acl() failed for %s with %s\n",
+ fsp_str_dbg(fsp),
+ nt_errstr(status));
+ return status;
+ }
+ }
+
notify_fname(conn, NOTIFY_ACTION_ADDED, FILE_NOTIFY_CHANGE_DIR_NAME,
smb_dname->base_name);
uint32_t file_attributes,
struct smb_filename *parent_dir_fname,
struct smb_filename *smb_fname_atname,
+ struct security_descriptor *sd,
int *pinfo,
struct files_struct *fsp)
{
parent_dir_fname,
smb_fname_atname,
smb_dname,
+ sd,
file_attributes,
fsp);
parent_dir_fname,
smb_fname_atname,
smb_dname,
+ sd,
file_attributes,
fsp);
file_attributes,
dirfsp->fsp_name,
smb_fname_atname,
+ sd,
&info,
fsp);
} else {
file_attributes,
dirfsp->fsp_name,
smb_fname_atname,
+ sd,
&info,
fsp);
}
}
if ((info == FILE_WAS_CREATED) &&
+ !S_ISDIR(fsp->fsp_name->st.st_ex_mode) &&
lp_nt_acl_support(SNUM(conn)) &&
!fsp_is_alternate_stream(fsp)) {
status = apply_new_nt_acl(dirfsp, fsp, sd);