]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Pass "file_id" explicitly to send_break_message()
authorVolker Lendecke <vl@samba.org>
Wed, 7 Feb 2018 11:24:35 +0000 (12:24 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 12 Feb 2018 23:26:43 +0000 (00:26 +0100)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/open.c
source3/smbd/proto.h
source3/smbd/smb2_setinfo.c

index 995417bc76440bad9c055e5fec3211adf3a2573a..be9e601bb1518dc07babdbcd8605f43c50263c4a 100644 (file)
@@ -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);
 
                        /*
index 96636696f9172c4d1dbfd6e4edad834072cf0900..4417595df3a9a7fe1f1ba34f00d35773a57a862d 100644 (file)
@@ -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,
index 0355095c8b1ea61e9580f768e4dcfdc436213e55..996e4f246329122d4459385aef396753716711f7 100644 (file)
@@ -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) {