s3: Pass sconn explicitly to schedule_deferred_open_message_smb
authorVolker Lendecke <vl@samba.org>
Tue, 2 Aug 2011 14:58:46 +0000 (16:58 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 2 Aug 2011 17:18:08 +0000 (19:18 +0200)
source3/smbd/close.c
source3/smbd/oplock.c
source3/smbd/process.c
source3/smbd/proto.h

index b31daf366f5ea2c767de6c26497594787ceba13e..a1b6fd8f2531a5da46197e992d24e99c2b9d6f60 100644 (file)
@@ -176,13 +176,18 @@ static void notify_deferred_opens(struct messaging_context *msg_ctx,
                }
 
                if (procid_is_me(&e->pid)) {
+                       struct smbd_server_connection *sconn;
                        /*
                         * We need to notify ourself to retry the open.  Do
                         * this by finding the queued SMB record, moving it to
                         * the head of the queue and changing the wait time to
                         * zero.
                         */
-                       schedule_deferred_open_message_smb(e->op_mid);
+                       sconn = msg_ctx_to_sconn(msg_ctx);
+                       if (sconn != NULL) {
+                               schedule_deferred_open_message_smb(
+                                       sconn, e->op_mid);
+                       }
                } else {
                        char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE];
 
index 69a4dbb6c6b2596e09823a012bff4e9f9fb89478..bba2e356f5cb3e98082a982a32258b357eafda3d 100644 (file)
@@ -688,6 +688,7 @@ static void process_oplock_break_response(struct messaging_context *msg_ctx,
                                          DATA_BLOB *data)
 {
        struct share_mode_entry msg;
+       struct smbd_server_connection *sconn;
 
        if (data->data == NULL) {
                DEBUG(0, ("Got NULL buffer\n"));
@@ -707,7 +708,10 @@ static void process_oplock_break_response(struct messaging_context *msg_ctx,
                   server_id_str(talloc_tos(), &src), file_id_string_tos(&msg.id),
                   msg.share_file_id, (unsigned long long)msg.op_mid));
 
-       schedule_deferred_open_message_smb(msg.op_mid);
+       sconn = msg_ctx_to_sconn(msg_ctx);
+       if (sconn != NULL) {
+               schedule_deferred_open_message_smb(sconn, msg.op_mid);
+       }
 }
 
 static void process_open_retry_message(struct messaging_context *msg_ctx,
@@ -717,6 +721,7 @@ static void process_open_retry_message(struct messaging_context *msg_ctx,
                                       DATA_BLOB *data)
 {
        struct share_mode_entry msg;
+       struct smbd_server_connection *sconn;
 
        if (data->data == NULL) {
                DEBUG(0, ("Got NULL buffer\n"));
@@ -735,7 +740,10 @@ static void process_open_retry_message(struct messaging_context *msg_ctx,
                   server_id_str(talloc_tos(), &src), file_id_string_tos(&msg.id),
                   (unsigned long long)msg.op_mid));
 
-       schedule_deferred_open_message_smb(msg.op_mid);
+       sconn = msg_ctx_to_sconn(msg_ctx);
+       if (sconn != NULL) {
+               schedule_deferred_open_message_smb(sconn, msg.op_mid);
+       }
 }
 
 /****************************************************************************
index a2678e5e0c839857949d74948d2f988fd7ab3d02..bb0b85a20e7f0c580a1f4f30889da67f84da83b6 100644 (file)
@@ -680,13 +680,14 @@ void remove_deferred_open_message_smb(struct smbd_server_connection *sconn,
  schedule it for immediate processing.
 ****************************************************************************/
 
-void schedule_deferred_open_message_smb(uint64_t mid)
+void schedule_deferred_open_message_smb(struct smbd_server_connection *sconn,
+                                       uint64_t mid)
 {
        struct pending_message_list *pml;
        int i = 0;
 
-       if (smbd_server_conn->using_smb2) {
-               schedule_deferred_open_message_smb2(smbd_server_conn, mid);
+       if (sconn->using_smb2) {
+               schedule_deferred_open_message_smb2(sconn, mid);
                return;
        }
 
index c12d92b901be4086e2ed09d5cae96e217f98b15f..5eced3df9b2fc6f478a3efb355ed9370542f6d70 100644 (file)
@@ -773,7 +773,8 @@ int srv_set_message(char *buf,
                         bool zero);
 void remove_deferred_open_message_smb(struct smbd_server_connection *sconn,
                                      uint64_t mid);
-void schedule_deferred_open_message_smb(uint64_t mid);
+void schedule_deferred_open_message_smb(struct smbd_server_connection *sconn,
+                                       uint64_t mid);
 bool open_was_deferred(uint64_t mid);
 bool get_deferred_open_message_state(struct smb_request *smbreq,
                                struct timeval *p_request_time,