diff options
author | Volker Lendecke <vl@samba.org> | 2009-04-14 20:39:14 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-04-16 15:07:06 +0200 |
commit | 32a36e470333abae2745e27074a24ab54777b41e (patch) | |
tree | 48c56c9ea94b63dd69b19d0ce348dda4a0bb679c /source3/smbd/files.c | |
parent | ea3a022ca3ed97f0ac3f16536832e8ec43683f8c (diff) | |
download | samba-32a36e470333abae2745e27074a24ab54777b41e.tar.gz |
Add notify_onelevel.tdb
This optimizes non-recursive notifys. For non-recursive notifies we can use a
per-directory file-id indexed notify record. This matters for the Windows
Explorer and IIS cases which do not use recursive notifies. In these cases, we
do not have to shuffle around the whole notify record on every change.
For the cluster case, this improves correctness of the notifies, ctdb only
distributes the tdb seqnum once a second, so we can lose notifies.
Diffstat (limited to 'source3/smbd/files.c')
-rw-r--r-- | source3/smbd/files.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/smbd/files.c b/source3/smbd/files.c index 36e80a086ac..d2ea520146c 100644 --- a/source3/smbd/files.c +++ b/source3/smbd/files.c @@ -433,6 +433,10 @@ void file_free(struct smb_request *req, files_struct *fsp) } if (fsp->notify) { + if (fsp->is_directory) { + notify_remove_onelevel(fsp->conn->notify_ctx, + &fsp->file_id, fsp); + } notify_remove(fsp->conn->notify_ctx, fsp); TALLOC_FREE(fsp->notify); } |