}
static NTSTATUS mkdir_internal(connection_struct *conn,
- struct files_struct **dirfsp,
struct smb_filename *smb_dname,
uint32_t file_attributes)
{
int ret;
bool ok;
- SMB_ASSERT(*dirfsp == conn->cwd_fsp);
-
if (!CAN_WRITE(conn) || (access_mask & ~(conn->share_access))) {
DEBUG(5,("mkdir_internal: failing share access "
"%s\n", lp_servicename(talloc_tos(), lp_sub, SNUM(conn))));
}
status = check_parent_access(conn,
- *dirfsp,
+ conn->cwd_fsp,
smb_dname,
access_mask);
if(!NT_STATUS_IS_OK(status)) {
}
ret = SMB_VFS_MKDIRAT(conn,
- *dirfsp,
+ conn->cwd_fsp,
smb_dname,
mode);
if (ret != 0) {
return status;
}
- status = mkdir_internal(conn, dirfsp, smb_dname,
+ status = mkdir_internal(conn,
+ smb_dname,
file_attributes);
if (!NT_STATUS_IS_OK(status)) {
status = NT_STATUS_OK;
info = FILE_WAS_OPENED;
} else {
- status = mkdir_internal(conn, dirfsp, smb_dname,
- file_attributes);
+ status = mkdir_internal(conn,
+ smb_dname,
+ file_attributes);
if (NT_STATUS_IS_OK(status)) {
info = FILE_WAS_CREATED;