svn commit: samba r12543 - in branches/SAMBA_3_0_RELEASE: .
source/smbd
jerry at samba.org
jerry at samba.org
Wed Dec 28 16:57:51 GMT 2005
Author: jerry
Date: 2005-12-28 16:57:50 +0000 (Wed, 28 Dec 2005)
New Revision: 12543
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12543
Log:
volker's fix for BUG 3349 (windows clients hang)
Modified:
branches/SAMBA_3_0_RELEASE/WHATSNEW.txt
branches/SAMBA_3_0_RELEASE/source/smbd/close.c
branches/SAMBA_3_0_RELEASE/source/smbd/open.c
branches/SAMBA_3_0_RELEASE/source/smbd/oplock.c
Changeset:
Modified: branches/SAMBA_3_0_RELEASE/WHATSNEW.txt
===================================================================
--- branches/SAMBA_3_0_RELEASE/WHATSNEW.txt 2005-12-28 15:38:36 UTC (rev 12542)
+++ branches/SAMBA_3_0_RELEASE/WHATSNEW.txt 2005-12-28 16:57:50 UTC (rev 12543)
@@ -1,13 +1,34 @@
- ==============================
- Release Notes for Samba 3.0.21
- Dec 20, 2005
- ==============================
+ ===============================
+ Release Notes for Samba 3.0.21a
+ Dec 30, 2005
+ ===============================
This is the latest stable release of Samba. This is the version
that production Samba servers should be running for all current
bug-fixes. Please read the following important changes in this
release.
+######################################################################
+Changes
+#######
+
+Changes since 3.0.21
+--------------------
+
+commits
+-------
+o Volker Lendecke <vl at samba.org>
+ * BUG 3349: Deadlock caused logic error in oplock code.
+
+
+Release Notes for older release follow:
+
+ --------------------------------------------------
+ ==============================
+ Release Notes for Samba 3.0.21
+ Dec 20, 2005
+ ==============================
+
Common bugs fixed in 3.0.21 include:
o Missing groups in a user's token when logging in via kerberos
Modified: branches/SAMBA_3_0_RELEASE/source/smbd/close.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/smbd/close.c 2005-12-28 15:38:36 UTC (rev 12542)
+++ branches/SAMBA_3_0_RELEASE/source/smbd/close.c 2005-12-28 16:57:50 UTC (rev 12543)
@@ -130,8 +130,10 @@
*/
schedule_deferred_open_smb_message(e->op_mid);
} else {
+ become_root();
message_send_pid(e->pid, MSG_SMB_OPEN_RETRY,
e, sizeof(*e), True);
+ unbecome_root();
}
}
}
Modified: branches/SAMBA_3_0_RELEASE/source/smbd/open.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/smbd/open.c 2005-12-28 15:38:36 UTC (rev 12542)
+++ branches/SAMBA_3_0_RELEASE/source/smbd/open.c 2005-12-28 16:57:50 UTC (rev 12543)
@@ -682,11 +682,15 @@
}
if (delay_it) {
+ BOOL ret;
DEBUG(10, ("Sending break request to PID %s\n",
procid_str_static(&exclusive->pid)));
exclusive->op_mid = get_current_mid();
- if (!message_send_pid(exclusive->pid, MSG_SMB_BREAK_REQUEST,
- exclusive, sizeof(*exclusive), True)) {
+ become_root();
+ ret = message_send_pid(exclusive->pid, MSG_SMB_BREAK_REQUEST,
+ exclusive, sizeof(*exclusive), True);
+ unbecome_root();
+ if (!ret) {
DEBUG(3, ("Could not send oplock break message\n"));
}
file_free(fsp);
Modified: branches/SAMBA_3_0_RELEASE/source/smbd/oplock.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/smbd/oplock.c 2005-12-28 15:38:36 UTC (rev 12542)
+++ branches/SAMBA_3_0_RELEASE/source/smbd/oplock.c 2005-12-28 16:57:50 UTC (rev 12543)
@@ -398,8 +398,10 @@
* get to process this message, we have closed the file. Reply
* with 'ok, oplock broken' */
DEBUG(3, ("Did not find fsp\n"));
+ become_root();
message_send_pid(src, MSG_SMB_BREAK_RESPONSE,
msg, sizeof(*msg), True);
+ unbecome_root();
return;
}
@@ -418,8 +420,10 @@
DEBUG(3, ("Already downgraded oplock on %.0f/%.0f: %s\n",
(double)fsp->dev, (double)fsp->inode,
fsp->fsp_name));
+ become_root();
message_send_pid(src, MSG_SMB_BREAK_RESPONSE,
msg, sizeof(*msg), True);
+ unbecome_root();
return;
}
@@ -545,11 +549,13 @@
{
int i;
+ become_root();
for (i=0; i<fsp->num_pending_break_messages; i++) {
struct share_mode_entry *msg = &fsp->pending_break_messages[i];
message_send_pid(msg->pid, MSG_SMB_BREAK_RESPONSE,
msg, sizeof(*msg), True);
}
+ unbecome_root();
SAFE_FREE(fsp->pending_break_messages);
fsp->num_pending_break_messages = 0;
@@ -686,8 +692,10 @@
abort();
}
+ become_root();
message_send_pid(share_entry->pid, MSG_SMB_ASYNC_LEVEL2_BREAK,
share_entry, sizeof(*share_entry), True);
+ unbecome_root();
}
remove_all_share_oplocks(lck, fsp);
More information about the samba-cvs
mailing list