From: Volker Lendecke Date: Wed, 7 Feb 2018 11:24:35 +0000 (+0100) Subject: smbd: Pass "file_id" explicitly to send_break_message() X-Git-Tag: tevent-0.9.36~121 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1e2659e96d4a309e76d1fc2a5a3dabb83a258127;p=thirdparty%2Fsamba.git smbd: Pass "file_id" explicitly to send_break_message() Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 995417bc764..be9e601bb15 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -1690,8 +1690,9 @@ static NTSTATUS open_mode_check(connection_struct *conn, */ NTSTATUS send_break_message(struct messaging_context *msg_ctx, - const struct share_mode_entry *exclusive, - uint16_t break_to) + const struct file_id *id, + const struct share_mode_entry *exclusive, + uint16_t break_to) { NTSTATUS status; char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE]; @@ -1701,7 +1702,7 @@ NTSTATUS send_break_message(struct messaging_context *msg_ctx, server_id_str_buf(exclusive->pid, &tmp))); /* Create the message. */ - share_mode_entry_to_message(msg, &exclusive->id, exclusive); + share_mode_entry_to_message(msg, id, exclusive); /* Overload entry->op_type */ /* @@ -1927,8 +1928,8 @@ static bool delay_for_oplock(files_struct *fsp, DEBUG(10, ("breaking from %d to %d\n", (int)e_lease_type, (int)break_to)); - send_break_message(fsp->conn->sconn->msg_ctx, e, - break_to); + send_break_message(fsp->conn->sconn->msg_ctx, &fsp->file_id, + e, break_to); if (e_lease_type & delay_mask) { delay = true; } @@ -4983,7 +4984,7 @@ static NTSTATUS lease_match(connection_struct *conn, continue; } - send_break_message(conn->sconn->msg_ctx, e, + send_break_message(conn->sconn->msg_ctx, &d->id, e, SMB2_LEASE_NONE); /* diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 96636696f91..4417595df3a 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -651,8 +651,9 @@ void change_file_owner_to_parent(connection_struct *conn, files_struct *fsp); bool is_stat_open(uint32_t access_mask); NTSTATUS send_break_message(struct messaging_context *msg_ctx, - const struct share_mode_entry *exclusive, - uint16_t break_to); + const struct file_id *id, + const struct share_mode_entry *exclusive, + uint16_t break_to); struct deferred_open_record; bool is_deferred_open_async(const struct deferred_open_record *rec); NTSTATUS create_directory(connection_struct *conn, struct smb_request *req, diff --git a/source3/smbd/smb2_setinfo.c b/source3/smbd/smb2_setinfo.c index 0355095c8b1..996e4f24632 100644 --- a/source3/smbd/smb2_setinfo.c +++ b/source3/smbd/smb2_setinfo.c @@ -226,7 +226,8 @@ static struct tevent_req *delay_rename_for_lease_break(struct tevent_req *req, delay = true; break_to = (e_lease_type & ~SMB2_LEASE_HANDLE); - send_break_message(fsp->conn->sconn->msg_ctx, e, break_to); + send_break_message(fsp->conn->sconn->msg_ctx, &fsp->file_id, + e, break_to); } if (!delay) {