r20931: This changes the notify infrastructure from a polling-based to an event-driven
commitd5206610cd67f88e2cc7d5b2b434e320e81c29d5
authorVolker Lendecke <vlendec@samba.org>
Sun, 21 Jan 2007 11:49:00 +0000 (21 11:49 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:17:21 +0000 (10 12:17 -0500)
tree5b085416bd4403cea107f73a1e874199fd1284b1
parent57881f749495825f61f8affce921eee46fc7b728
r20931: This changes the notify infrastructure from a polling-based to an event-driven
based approach. The only remaining hook into the backend is now

void *(*notify_add)(TALLOC_CTX *mem_ctx,
    struct event_context *event_ctx,
    files_struct *fsp, uint32 *filter);

(Should we put this through the VFS, so that others can more easily plug in?)

The trick here is that the backend can pick filter bits that the main smbd
should not handle anymore. Thanks to tridge for this idea.

The backend can notify the main smbd process via

void notify_fsp(files_struct *fsp, uint32 action, char *name);

The core patch is not big, what makes this more than 1800 lines are the
individual backends that are considerably changed but can be reviewed
one by one.

Based on this I'll continue with inotify now.

Volker
(This used to be commit 9cd6a8a82792b7b6967141565d043b6337836a5d)
12 files changed:
source3/include/event.h
source3/include/smb.h
source3/smbd/close.c
source3/smbd/notify.c
source3/smbd/notify_fam.c
source3/smbd/notify_hash.c
source3/smbd/notify_kernel.c
source3/smbd/nttrans.c
source3/smbd/process.c
source3/smbd/reply.c
source3/smbd/service.c
source3/smbd/trans2.c