[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Mon Dec 12 13:50:01 MST 2011
The branch, master has been updated
via 77dc976 s3:smbd/close: pass smbd_server_connection to notify_deferred_opens()
via 4d44f87 s3:smbd/clode: pass smbd_server_connection as private_data to msg_close_file()
via d1e0997 s3:smbd/blocking: pass smbd_server_connection as private_data to received_unlock_msg()
via f59d358 s3:smb2_lock: pass smbd_server_connection as private_data to received_unlock_msg()
from 162975a s4:python/samba/join: set msDS-Behavior-Version to '4' 2008_R2 on the nTDSA object
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 77dc976b53490e06dff649f199033fe799b714bf
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Dec 12 16:07:19 2011 +0100
s3:smbd/close: pass smbd_server_connection to notify_deferred_opens()
metze
Autobuild-User: Stefan Metzmacher <metze at samba.org>
Autobuild-Date: Mon Dec 12 21:49:11 CET 2011 on sn-devel-104
commit 4d44f879e12106f83491a877ddef6c6ee9232d7e
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Dec 12 15:45:07 2011 +0100
s3:smbd/clode: pass smbd_server_connection as private_data to msg_close_file()
metze
commit d1e0997614ac76bf4d2efc59d9a49472a3da3d4c
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Dec 12 15:45:07 2011 +0100
s3:smbd/blocking: pass smbd_server_connection as private_data to received_unlock_msg()
metze
commit f59d3586535252e7d3c1944bc827807be60692a6
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Dec 12 15:45:07 2011 +0100
s3:smb2_lock: pass smbd_server_connection as private_data to received_unlock_msg()
metze
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/blocking.c | 8 ++++----
source3/smbd/close.c | 20 ++++++++------------
source3/smbd/process.c | 2 +-
source3/smbd/smb2_lock.c | 13 +++++++------
4 files changed, 20 insertions(+), 23 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/blocking.c b/source3/smbd/blocking.c
index f07a792..5520fec 100644
--- a/source3/smbd/blocking.c
+++ b/source3/smbd/blocking.c
@@ -248,7 +248,7 @@ bool push_blocking_lock_request( struct byte_range_lock *br_lck,
/* Ensure we'll receive messages when this is unlocked. */
if (!sconn->smb1.locks.blocking_lock_unlock_state) {
- messaging_register(sconn->msg_ctx, NULL,
+ messaging_register(sconn->msg_ctx, sconn,
MSG_SMB_UNLOCK, received_unlock_msg);
sconn->smb1.locks.blocking_lock_unlock_state = true;
}
@@ -702,11 +702,11 @@ static void received_unlock_msg(struct messaging_context *msg,
struct server_id server_id,
DATA_BLOB *data)
{
- struct smbd_server_connection *sconn;
+ struct smbd_server_connection *sconn =
+ talloc_get_type(private_data,
+ struct smbd_server_connection);
- sconn = msg_ctx_to_sconn(msg);
if (sconn == NULL) {
- DEBUG(1, ("could not find sconn\n"));
return;
}
diff --git a/source3/smbd/close.c b/source3/smbd/close.c
index 8fd6b1f..09d8905 100644
--- a/source3/smbd/close.c
+++ b/source3/smbd/close.c
@@ -160,7 +160,7 @@ static NTSTATUS close_filestruct(files_struct *fsp)
If any deferred opens are waiting on this close, notify them.
****************************************************************************/
-static void notify_deferred_opens(struct messaging_context *msg_ctx,
+static void notify_deferred_opens(struct smbd_server_connection *sconn,
struct share_mode_lock *lck)
{
int i;
@@ -177,24 +177,20 @@ 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.
*/
- sconn = msg_ctx_to_sconn(msg_ctx);
- if (sconn != NULL) {
- schedule_deferred_open_message_smb(
- sconn, e->op_mid);
- }
+ schedule_deferred_open_message_smb(sconn, e->op_mid);
} else {
char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE];
share_mode_entry_to_message(msg, e);
- messaging_send_buf(msg_ctx, e->pid, MSG_SMB_OPEN_RETRY,
+ messaging_send_buf(sconn->msg_ctx, e->pid,
+ MSG_SMB_OPEN_RETRY,
(uint8 *)msg,
MSG_SMB_SHARE_MODE_ENTRY_SIZE);
}
@@ -378,7 +374,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp,
}
/* Notify any deferred opens waiting on this close. */
- notify_deferred_opens(conn->sconn->msg_ctx, lck);
+ notify_deferred_opens(conn->sconn, lck);
reply_to_oplock_break_requests(fsp);
/*
@@ -1138,13 +1134,13 @@ void msg_close_file(struct messaging_context *msg_ctx,
struct server_id server_id,
DATA_BLOB *data)
{
- struct smbd_server_connection *sconn;
files_struct *fsp = NULL;
struct share_mode_entry e;
+ struct smbd_server_connection *sconn =
+ talloc_get_type(private_data,
+ struct smbd_server_connection);
- sconn = msg_ctx_to_sconn(msg_ctx);
if (sconn == NULL) {
- DEBUG(1, ("could not find sconn\n"));
return;
}
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 64dec52..0d17ad7 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -3137,7 +3137,7 @@ void smbd_process(struct tevent_context *ev_ctx,
/* register our message handlers */
messaging_register(sconn->msg_ctx, NULL,
MSG_SMB_FORCE_TDIS, msg_force_tdis);
- messaging_register(sconn->msg_ctx, NULL,
+ messaging_register(sconn->msg_ctx, sconn,
MSG_SMB_CLOSE_FILE, msg_close_file);
/*
diff --git a/source3/smbd/smb2_lock.c b/source3/smbd/smb2_lock.c
index 8f4df3d..57bcbe6 100644
--- a/source3/smbd/smb2_lock.c
+++ b/source3/smbd/smb2_lock.c
@@ -450,15 +450,16 @@ static void received_unlock_msg(struct messaging_context *msg,
struct server_id server_id,
DATA_BLOB *data)
{
- struct smbd_server_connection *sconn;
+ struct smbd_server_connection *sconn =
+ talloc_get_type(private_data,
+ struct smbd_server_connection);
- DEBUG(10,("received_unlock_msg (SMB2)\n"));
-
- sconn = msg_ctx_to_sconn(msg);
if (sconn == NULL) {
- DEBUG(1, ("could not find sconn\n"));
return;
}
+
+ DEBUG(10,("received_unlock_msg (SMB2)\n"));
+
process_blocking_lock_queue_smb2(sconn, timeval_current());
}
@@ -665,7 +666,7 @@ bool push_blocking_lock_request_smb2( struct byte_range_lock *br_lck,
/* Ensure we'll receive messages when this is unlocked. */
if (!sconn->smb2.locks.blocking_lock_unlock_state) {
- messaging_register(sconn->msg_ctx, NULL,
+ messaging_register(sconn->msg_ctx, sconn,
MSG_SMB_UNLOCK, received_unlock_msg);
sconn->smb2.locks.blocking_lock_unlock_state = true;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list