s3:smbd/blocking: pass smbd_server_connection as private_data to process_blocking_loc...
authorStefan Metzmacher <metze@samba.org>
Tue, 13 Dec 2011 07:11:58 +0000 (08:11 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 13 Dec 2011 11:36:34 +0000 (12:36 +0100)
metze

source3/smbd/blocking.c

index 5520feca5f11910bada3cf11a4930158fbf82909..ad1bbe3a91d4dbf3c9141a1b06cdfbe0ffc3a009 100644 (file)
@@ -828,10 +828,16 @@ static void process_blocking_lock_cancel_message(struct messaging_context *ctx,
                                                 struct server_id server_id,
                                                 DATA_BLOB *data)
 {
-       struct smbd_server_connection *sconn;
        NTSTATUS err;
        const char *msg = (const char *)data->data;
        struct blocking_lock_record *blr;
+       struct smbd_server_connection *sconn =
+               talloc_get_type(private_data,
+               struct smbd_server_connection);
+
+       if (sconn == NULL) {
+               return;
+       }
 
        if (data->data == NULL) {
                smb_panic("process_blocking_lock_cancel_message: null msg");
@@ -843,12 +849,6 @@ static void process_blocking_lock_cancel_message(struct messaging_context *ctx,
                smb_panic("process_blocking_lock_cancel_message: bad msg");
         }
 
-       sconn = msg_ctx_to_sconn(ctx);
-       if (sconn == NULL) {
-               DEBUG(1, ("could not find sconn\n"));
-               return;
-       }
-
        memcpy(&blr, msg, sizeof(blr));
        memcpy(&err, &msg[sizeof(blr)], sizeof(NTSTATUS));
 
@@ -880,7 +880,7 @@ struct blocking_lock_record *blocking_lock_cancel_smb1(files_struct *fsp,
 
        if (!sconn->smb1.locks.blocking_lock_cancel_state) {
                /* Register our message. */
-               messaging_register(sconn->msg_ctx, NULL,
+               messaging_register(sconn->msg_ctx, sconn,
                                   MSG_SMB_BLOCKING_LOCK_CANCEL,
                                   process_blocking_lock_cancel_message);