extern int cm_enableServerLocks;
extern int cm_followBackupPath;
extern int cm_deleteReadOnly;
+extern afs_uint32 cm_pioctlFollowMountPoint;
#ifdef USE_BPLUS
extern afs_int32 cm_BPlusTrees;
#endif
}
afsi_log("CM FollowBackupPath is %u", cm_followBackupPath);
+ dummyLen = sizeof(DWORD);
+ code = RegQueryValueEx(parmKey, "PioctlFollowMountPoint", NULL, NULL,
+ (BYTE *) &dwValue, &dummyLen);
+ if (code == ERROR_SUCCESS) {
+ cm_pioctlFollowMountPoint = (afs_uint32) dwValue;
+ }
+ afsi_log("CM PioctlFollowMountPoint is %u", cm_pioctlFollowMountPoint);
+
RegCloseKey (parmKey);
cacheBlocks = ((afs_uint64)cacheSize * 1024) / blockSize;
extern void afsi_log(char *pattern, ...);
+afs_uint32 cm_pioctlFollowMountPoint = 0;
+
void cm_InitIoctl(void)
{
lock_InitializeMutex(&cm_Afsdsbmt_Lock, "AFSDSBMT.INI Access Lock");
#endif
char * relativePath;
char * lastComponent = NULL;
- afs_uint32 follow = 0;
+ afs_uint32 follow = (cm_pioctlFollowMountPoint ? CM_FLAG_FOLLOW : CM_FLAG_NOMOUNTCHASE);
relativePath = ioctlp->inDatap;
/* setup the next data value for the caller to use */
and it returns the correct (full) path. therefore, there is
no drive letter, and the path is absolute. */
code = cm_NameI(cm_data.rootSCachep, relativePath,
- CM_FLAG_CASEFOLD | follow,
+ CM_FLAG_CASEFOLD,
userp, "", reqp, scpp);
if (code) {
code = cm_NameI(substRootp, p, CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
userp, NULL, reqp, &iscp);
if (code == 0)
- code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | CM_FLAG_NOMOUNTCHASE,
+ code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | follow,
userp, NULL, reqp, scpp);
if (iscp)
cm_ReleaseSCache(iscp);
code = cm_NameI(substRootp, p, CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
userp, NULL, reqp, &iscp);
if (code == 0)
- code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | CM_FLAG_NOMOUNTCHASE,
+ code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | follow,
userp, NULL, reqp, scpp);
if (iscp)
cm_ReleaseSCache(iscp);
code = cm_NameI(substRootp, relativePath, CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
userp, NULL, reqp, &iscp);
if (code == 0)
- code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | CM_FLAG_NOMOUNTCHASE,
+ code = cm_NameI(iscp, lastComponent, CM_FLAG_CASEFOLD | follow,
userp, NULL, reqp, scpp);
if (iscp)
cm_ReleaseSCache(iscp);