summaryrefslogtreecommitdiff
path: root/source3/smbd/open.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-01-30 01:41:46 +0000
committerJeremy Allison <jra@samba.org>2003-01-30 01:41:46 +0000
commitb61f89826f2b7ee8ca7bd388b66c3f5b78ed3e60 (patch)
treecab03bdf0d9d7b204aec66583513bd96d10e5e4c /source3/smbd/open.c
parent812a531f4553c8eb2df572acd4fa42a6f91b3051 (diff)
downloadsamba-b61f89826f2b7ee8ca7bd388b66c3f5b78ed3e60.tar.gz
samba-b61f89826f2b7ee8ca7bd388b66c3f5b78ed3e60.tar.bz2
samba-b61f89826f2b7ee8ca7bd388b66c3f5b78ed3e60.zip
Fix for interesting resource constraint condition. When all opens are
level 2 and a request for open with no oplock is received then the smbd should send *synchronous* break messages, not asynchronous, otherwise it spins very rapidly, releasing the lock, sending the 'break to none' messages and then re-acquiring the lock before any other process has a chance to get the lock and remove it's own oplock (at least on linux). Jeremy (This used to be commit 33e3e863eb7f35b852384e689f3272784261fc39)
Diffstat (limited to 'source3/smbd/open.c')
-rw-r--r--source3/smbd/open.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 5c3359fc6b..29048bca02 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -585,7 +585,7 @@ dev = %x, inode = %.0f\n", *p_oplock_request, share_entry->op_type, fname, (unsi
/* Oplock break - unlock to request it. */
unlock_share_entry(conn, dev, inode);
- opb_ret = request_oplock_break(share_entry);
+ opb_ret = request_oplock_break(share_entry, False);
/* Now relock. */
lock_share_entry(conn, dev, inode);