}
static NTSTATUS open_mode_check(connection_struct *conn,
+ struct file_id fid,
struct share_mode_lock *lck,
uint32_t access_mask,
uint32_t share_access)
{
struct validate_my_share_entries_state validate_state = {
.sconn = conn->sconn,
- .fid = d->id,
+ .fid = fid,
.self = messaging_server_id(conn->sconn->msg_ctx),
};
ok = share_mode_forall_entries(
}
state = (struct open_mode_check_state) {
- .fid = d->id,
+ .fid = fid,
.share_access = (FILE_SHARE_READ|
FILE_SHARE_WRITE|
FILE_SHARE_DELETE),
NTSTATUS status;
status = open_mode_check(
- fsp->conn, lck, access_mask, share_access);
+ fsp->conn, fsp->file_id, lck, access_mask, share_access);
if (NT_STATUS_EQUAL(status, NT_STATUS_SHARING_VIOLATION)) {
sharing_violation = true;
status = NT_STATUS_OK; /* handled later */
return NT_STATUS_DELETE_PENDING;
}
- status = open_mode_check(conn, lck,
+ status = open_mode_check(conn, fsp->file_id, lck,
access_mask, share_access);
if (!NT_STATUS_IS_OK(status)) {