if (cm_freelanceEnabled &&
scp->fid.cell==AFS_FAKE_ROOT_CELL_ID && scp->fid.volume==AFS_FAKE_ROOT_VOL_ID) {
- /* if it's something on /afs */
- if (!(scp->fid.vnode==0x1 && scp->fid.unique==0x1)) {
- /* if it's not root.afs */
- return 1;
- }
-
lock_ObtainMutex(&cm_Freelance_Lock);
fdc = cm_fakeDirCallback;
fgc = cm_fakeGettingCallback;
lock_InitializeMutex(&cm_Freelance_Lock, "Freelance Lock");
- // make sure we sync the data version to the cached root scache_t
- if (cm_data.rootSCachep && cm_data.rootSCachep->fid.cell == AFS_FAKE_ROOT_CELL_ID)
- cm_data.fakeDirVersion = cm_data.rootSCachep->dataVersion;
-
// yj: first we make a call to cm_initLocalMountPoints
// to read all the local mount points from the registry
cm_InitLocalMountPoints();
for (i=0; i<cm_noLocalMountPoints; i++) {
hash = CM_SCACHE_HASH(&aFid);
for (scp=cm_data.scacheHashTablep[hash]; scp; scp=scp->nextp) {
- if (cm_FidCmp(&scp->fid, &aFid) == 0) {
+ if (scp != cm_data.rootSCachep && cm_FidCmp(&scp->fid, &aFid) == 0) {
// mark the scp to be reused
cm_HoldSCacheNoLock(scp);
lock_ReleaseWrite(&cm_scacheLock);