diff options
author | Jeremy Allison <jra@samba.org> | 2004-09-19 01:16:45 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:52:42 -0500 |
commit | f820b921cdeba93f21237e32f9872340d3afc347 (patch) | |
tree | b1d28ce13b9b185a3be657790a84a1ee7c4cecd2 | |
parent | 7418d20abe0870745f4845de59aa92128ea646ef (diff) | |
download | samba-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.c | 13 |
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. |