svn commit: samba r2413 - in branches/SAMBA_3_0/source/locking: .

jra at samba.org jra at samba.org
Sun Sep 19 01:16:47 GMT 2004


Author: jra
Date: 2004-09-19 01:16:45 +0000 (Sun, 19 Sep 2004)
New Revision: 2413

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_3_0/source/locking&rev=2413&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:
   branches/SAMBA_3_0/source/locking/locking.c


Changeset:
Modified: branches/SAMBA_3_0/source/locking/locking.c
===================================================================
--- branches/SAMBA_3_0/source/locking/locking.c	2004-09-19 01:16:32 UTC (rev 2412)
+++ branches/SAMBA_3_0/source/locking/locking.c	2004-09-19 01:16:45 UTC (rev 2413)
@@ -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