summaryrefslogtreecommitdiff
path: root/source3/smbd/notify_kernel.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-03-30 21:53:33 +0000
committerJeremy Allison <jra@samba.org>2001-03-30 21:53:33 +0000
commitfd6e9d6db98086e47650e5679064172fd5454f40 (patch)
tree87d2620048421510a2a5473a3215e6c3988dd05b /source3/smbd/notify_kernel.c
parent94f0c652fe89c7137650982a9416969de264e6e2 (diff)
downloadsamba-fd6e9d6db98086e47650e5679064172fd5454f40.tar.gz
samba-fd6e9d6db98086e47650e5679064172fd5454f40.tar.bz2
samba-fd6e9d6db98086e47650e5679064172fd5454f40.zip
utils/torture.c: Added one more delete on close test.
smbd/notify_kernel.c: This code was wrong I believe. It was structured to only return a changenotify event on being called from timeout processing (t != 0). The kernel changenotify events should fire on *asynchronous* processing (EINTR return from select caused by the realtime signal delivery) with t == 0. Reported by Juergen Hasch (Hasch@t-online.de). ANDREW PLEASE CHECK THIS ! Currently the hash style changenotify is done on async processing as well as timeout processing. As this is expensive we may want to revisit doing this and maybe set it to fire only on timeout processing. Jeremy. (This used to be commit f952380c5d0cfbbec1e7de98b712952f302cddfd)
Diffstat (limited to 'source3/smbd/notify_kernel.c')
-rw-r--r--source3/smbd/notify_kernel.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/source3/smbd/notify_kernel.c b/source3/smbd/notify_kernel.c
index 243a16a7f7..6509354e9b 100644
--- a/source3/smbd/notify_kernel.c
+++ b/source3/smbd/notify_kernel.c
@@ -74,14 +74,14 @@ static void signal_handler(int signal, siginfo_t *info, void *unused)
/****************************************************************************
Check if a change notify should be issued.
- time zero means instantaneous check (used for hash). Ignore this (normal method
- will be used instead).
+ time non-zero means timeout check (used for hash). Ignore this (async method
+ where time is zero will be used instead).
*****************************************************************************/
static BOOL kernel_check_notify(connection_struct *conn, uint16 vuid, char *path, uint32 flags, void *datap, time_t t)
{
struct change_data *data = (struct change_data *)datap;
- if (!t)
+ if (t)
return False;
if (data->directory_handle != (int)fd_pending) return False;