summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-09-19 01:16:45 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:52:42 -0500
commitf820b921cdeba93f21237e32f9872340d3afc347 (patch)
treeb1d28ce13b9b185a3be657790a84a1ee7c4cecd2
parent7418d20abe0870745f4845de59aa92128ea646ef (diff)
downloadsamba-f820b921cdeba93f21237e32f9872340d3afc347.tar.gz
samba-f820b921cdeba93f21237e32f9872340d3afc347.tar.bz2
samba-f820b921cdeba93f21237e32f9872340d3afc347.zip
r2413: 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. (This used to be commit e1bf108ae965ae730c67524164fa36497ea905b5)
-rw-r--r--source3/locking/locking.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/source3/locking/locking.c b/source3/locking/locking.c
index 8f53b55fc5..d4e8c493d5 100644
--- a/source3/locking/locking.c
+++ b/source3/locking/locking.c
@@ -1043,18 +1043,6 @@ int get_deferred_opens(connection_struct *conn,
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 @@ static BOOL deferred_open_entries_identical( deferred_open_entry *e1, deferred_o
e1->time.tv_usec == e2->time.tv_usec);
}
-
/*******************************************************************
Delete a specific deferred open entry.
Ignore if no entry deleted.