#include "afsd.h"
#include <WINNT/syscfg.h>
#include <WINNT/afsreg.h>
+#include <../afsrdr/kif.h>
/*extern void afsi_log(char *pattern, ...);*/
lock_ReleaseWrite(&cm_callbackLock);
}
-#ifdef AFSIFS
-#define BUF_FILEHASH(fidp) ((((fidp)->vnode+((fidp)->unique << 13) + ((fidp)->unique >> (32-13)) \
- +(fidp)->volume+(fidp)->cell) \
- /*& 0xffffffff*/))
-#endif
-
/*
* When we lose a callback, may have to send change notification replies.
* Do not call with a lock on the scp.
HKEY hKey;
DWORD dummyLen;
- if (RegOpenKeyEx( HKEY_LOCAL_MACHINE,
+ /* why does this have to query the registry each time? */
+ if (RegOpenKeyEx( HKEY_LOCAL_MACHINE,
AFSREG_CLT_OPENAFS_SUBKEY,
0,
KEY_READ|KEY_QUERY_VALUE,
if (dwDelay)
Sleep(dwDelay);
- if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
+ /* for directories, this sends a change notification on the dir itself */
+ if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
#ifndef AFSIFS
if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
smb_NotifyChange(0,
FILE_NOTIFY_GENERIC_DIRECTORY_FILTER,
scp, NULL, NULL, TRUE);
#else
- dc_break_callback(BUF_FILEHASH(&scp->fid));
+ dc_break_callback(FID_HASH_FN(&scp->fid));
#endif
} else {
+ /* and for files, this sends a change notification on the file's parent dir */
cm_fid_t tfid;
cm_scache_t *dscp;
dscp, NULL, NULL, TRUE);
#else
if (dscp)
- dc_break_callback(BUF_FILEHASH(&dscp->fid));
+ dc_break_callback(FID_HASH_FN(&dscp->fid));
#endif
if (dscp)
cm_ReleaseSCache(dscp);