The Samba-Bugzilla – Attachment 3817 Details for
Bug 5980
Race condition when granting level2 oplocks can cause break notify to be missed.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
look (text/plain), 1.44 KB, created by
Jeremy Allison
on 2008-12-18 15:31:01 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2008-12-18 15:31:01 UTC
Size:
1.44 KB
patch
obsolete
>diff --git a/source/smbd/oplock.c b/source/smbd/oplock.c >index c98d114..4b3ab96 100644 >--- a/source/smbd/oplock.c >+++ b/source/smbd/oplock.c >@@ -821,10 +821,33 @@ void release_level_2_oplocks_on_change(files_struct *fsp) > > share_mode_entry_to_message(msg, share_entry); > >- messaging_send_buf(smbd_messaging_context(), share_entry->pid, >- MSG_SMB_ASYNC_LEVEL2_BREAK, >- (uint8 *)msg, >- MSG_SMB_SHARE_MODE_ENTRY_SIZE); >+ /* >+ * Deal with a race condition when breaking level2 >+ * oplocks. Don't send all the messages and release >+ * the lock, this allows someone else to come in and >+ * get a level2 lock before any of the messages are >+ * processed, and thus miss getting a break message. >+ * Ensure at least one entry (the one we're breaking) >+ * is processed immediately under the lock and becomes >+ * set as NO_OPLOCK to stop any waiter getting a level2. >+ * Bugid #5980. >+ */ >+ >+ if (procid_is_me(&share_entry->pid)) { >+ DATA_BLOB blob = data_blob_const(msg, >+ MSG_SMB_SHARE_MODE_ENTRY_SIZE); >+ process_oplock_async_level2_break_message(smbd_messaging_context(), >+ NULL, >+ MSG_SMB_ASYNC_LEVEL2_BREAK, >+ share_entry->pid, >+ &blob); >+ } else { >+ messaging_send_buf(smbd_messaging_context(), >+ share_entry->pid, >+ MSG_SMB_ASYNC_LEVEL2_BREAK, >+ (uint8 *)msg, >+ MSG_SMB_SHARE_MODE_ENTRY_SIZE); >+ } > } > > /* We let the message receivers handle removing the oplock state
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 5980
: 3817