}
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))));
return status;
}
- status = mkdir_internal(conn, smb_dname,
+ status = mkdir_internal(conn, dirfsp, smb_dname,
file_attributes);
if (!NT_STATUS_IS_OK(status)) {
status = NT_STATUS_OK;
info = FILE_WAS_OPENED;
} else {
- status = mkdir_internal(conn, smb_dname,
+ status = mkdir_internal(conn, dirfsp, smb_dname,
file_attributes);
if (NT_STATUS_IS_OK(status)) {