svn commit: samba r2412 - in trunk/source/locking: .
jra at samba.org
jra at samba.org
Sun Sep 19 01:16:34 GMT 2004
Author: jra
Date: 2004-09-19 01:16:32 +0000 (Sun, 19 Sep 2004)
New Revision: 2412
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/trunk/source/locking&rev=2412&nolog=1
Log:
Arggg. Stupid, stupid, stupid me ! I added a paranoia test
case when I was developing the deferred open case and made it
too tight. It will fire (incorrectly) and panic when a client
does a second open for a file with a different mid (multiplex-id)
request. Doh ! This is a perfectly valid thing for a client to
do (have two pending opens with different mids outstanding on
the same file) and currently when the first pending open expires
with a share violation the paranoia code will panic smbd.
It's a rare condition, but obvious now I've looked at the
code.
Fix for bug #1743.
Jeremy.
Modified:
trunk/source/locking/locking.c
Changeset:
Modified: trunk/source/locking/locking.c
===================================================================
--- trunk/source/locking/locking.c 2004-09-18 12:51:36 UTC (rev 2411)
+++ trunk/source/locking/locking.c 2004-09-19 01:16:32 UTC (rev 2412)
@@ -1043,18 +1043,6 @@
static BOOL deferred_open_entries_identical( deferred_open_entry *e1, deferred_open_entry *e2)
{
-#if 1 /* JRA PARANOIA TEST - REMOVE LATER */
- if (e1->pid == e2->pid &&
- e1->port == e2->port &&
- e1->dev == e2->dev &&
- e1->inode == e2->inode &&
- ((e1->time.tv_sec != e2->time.tv_sec) ||
- (e1->time.tv_usec != e2->time.tv_usec) ||
- (e1->mid != e2->mid))) {
- smb_panic("PANIC: deferred_open_entries_identical: logic error.\n");
- }
-#endif
-
return (e1->pid == e2->pid &&
e1->mid == e2->mid &&
e1->port == e2->port &&
@@ -1064,7 +1052,6 @@
e1->time.tv_usec == e2->time.tv_usec);
}
-
/*******************************************************************
Delete a specific deferred open entry.
Ignore if no entry deleted.
More information about the samba-cvs
mailing list