summaryrefslogtreecommitdiffstats
path: root/source/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-09-07 16:51:17 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:51:16 -0500
commit7ba9b6ce588f716589e9f88ed146fad36c4b3758 (patch)
tree119dd79564ec912a67491212aa09aff5b2e4bc78 /source/smbd
parent38b8a2b5278d2538b9803c2b81f767036a16ad65 (diff)
downloadsamba-7ba9b6ce588f716589e9f88ed146fad36c4b3758.tar.gz
samba-7ba9b6ce588f716589e9f88ed146fad36c4b3758.tar.xz
samba-7ba9b6ce588f716589e9f88ed146fad36c4b3758.zip
r18224: Paranoia - ensure the oplock event handler is
removed immediately in the handler. Extra debug info tracking down winbindd DC selection. Jeremy.
Diffstat (limited to 'source/smbd')
-rw-r--r--source/smbd/oplock.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/smbd/oplock.c b/source/smbd/oplock.c
index eec19259d0b..aaa236effa7 100644
--- a/source/smbd/oplock.c
+++ b/source/smbd/oplock.c
@@ -348,6 +348,12 @@ static void oplock_timeout_handler(struct timed_event *te,
{
files_struct *fsp = (files_struct *)private_data;
+ /* Ensure we always remove this event. */
+ if (fsp->oplock_timeout != NULL) {
+ /* Remove the timed event handler. */
+ TALLOC_FREE(fsp->oplock_timeout);
+ fsp->oplock_timeout = NULL;
+ }
DEBUG(0, ("Oplock break failed for file %s -- replying anyway\n", fsp->fsp_name));
global_client_failed_oplock_break = True;
remove_oplock(fsp);